我在 following this tutorial 时遇到错误
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 示例方面没有太多。上面的教程本身还没有完成。
有人有什么想法吗?
谢谢
最佳答案
所以问题是教程中有一个拼写错误。
解决方案是 OwinCommunicationListener
类中的 _parameters
应声明为 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) )
};
我希望这会有所帮助。
关于c# - 构建 Service Fabric Web Api 时出现错误,无法从 Fabric.StatelessServiceContext 转换为 Fabric.ServiceInitializationParameters,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44326817/