![](/img/trans.png)
[英]Where & how does one instantiate ServiceInitializationParameters in an Azure Service Fabric service?
[英]Getting error cannot convert from Fabric.StatelessServiceContext to Fabric.ServiceInitializationParameters while building Service Fabric Web Api
我在學習本教程時遇到錯誤
cannot convert from 'System.Fabric.StatelessServiceContext' to 'System.Fabric.ServiceInitializationParameters'
在嘗試創建Service Fabric Web Api時,在其中進行了解釋。
具體來說,我將在下一行中得到它:
return new[] {
new ServiceInstanceListener(initParams =>
new OwinCommunicationListener("api",new Startup(),initParams) )
};
我沒有嘗試太多,因為Azure的Service Fabric是一個非常新的東西,所以在其他Web Api示例方面沒有太多的東西。 上面的教程本身甚至還沒有完成。
有沒有人有任何想法?
謝謝
所以問題在於教程中存在拼寫錯誤。
解決方案是, _parameters
類中的OwinCommunicationListener
應聲明為StatelessServiceContext
,而不是ServiceInitializationParameters
。 解決方案是Visual Studio的潛在修復建議的一種解決方案。
為了清楚起見,拋出錯誤的教程的原始代碼如下:
private readonly IOwinAppBuilder _startup;
private readonly string _appRoot;
private readonly ServiceInitializationParameters _parameters;
private string _listeningAddress;
private IDisposable _serverHandle;
public OwinCommunicationListener(
string appRoot,
IOwinAppBuilder startup,
ServiceInitializationParameters serviceInitializationParameters
)
{
_startup = startup;
_appRoot = appRoot;
_parameters = serviceInitializationParameters;
}
正確的代碼是下一個,注意第3行和第11行的差異:
private readonly IOwinAppBuilder _startup;
private readonly string _appRoot;
private readonly StatelessServiceContext _parameters;
private string _listeningAddress;
private IDisposable _serverHandle;
public OwinCommunicationListener(
string appRoot,
IOwinAppBuilder startup,
// Use StatelessServiceContext, NOT ServiceInitializationParameters
StatelessServiceContext serviceInitializationParameters
)
{
_startup = startup;
_appRoot = appRoot;
_parameters = serviceInitializationParameters;
}
電話保持不變:
return new[] {
new ServiceInstanceListener(initParams =>
new OwinCommunicationListener("api",new Startup(),initParams) )
};
我希望這有幫助。
對於同一個教程,如果有人想知道缺少引用,這里是列表:
using System.Fabric;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.Owin.Hosting;
using Microsoft.ServiceFabric.Services.Communication.Runtime;
using System.Globalization;using System.Collections.Generic;
using System.Fabric;
using Microsoft.ServiceFabric.Services.Communication.Runtime;
using Microsoft.ServiceFabric.Services.Runtime;
對於已安裝的Nuget軟件包:(轉到項目資源管理器中的參考資料,右鍵單擊> Nuget軟件包資源管理器,如果不存在,則安裝如下)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.