无法在VS 2015 RC中重复F5部署OWIN Service Fabric应用程序

时间:2015-07-14 17:12:52

标签: azure azure-service-fabric

重现的步骤:

  1. 创建一个应用程序(在我的情况下,在OWIN + Web API教程之后使用两个无状态服务,并将每个实例计为1)。
  2. F5-deploy启动应用程序 - 一切正常,我可以在Service Fabric Explorer中看到该应用程序
  3. VS 2015(RC)中的Shift-F5停止调试 - 应用程序继续在Service Fabric Explorer中运行
  4. 再次进行F5部署 - 每个无状态服务都会发生异常,如下所示:
  5. System.Reflection.TargetInvocationException was unhandled by user code
      HResult=-2146232828
      Message=Exception has been thrown by the target of an invocation.
      Source=mscorlib
      StackTrace:
           at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
           at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
           at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
           at Microsoft.Owin.Hosting.ServerFactory.ServerFactoryAdapter.Create(IAppBuilder builder)
           at Microsoft.Owin.Hosting.Engine.HostingEngine.Start(StartContext context)
           at Microsoft.Owin.Hosting.WebApp.Start(String url, Action`1 startup)
           at Infrastructure.OwinCommunicationListener.OpenAsync(CancellationToken cancellationToken) in C:\Users\Lars\Documents\Visual Studio 2015\Projects\WebApiSF\Infrastructure\OwinCommunicationListener.cs:line 47
           at Microsoft.ServiceFabric.Services.StatelessServiceBase.<OpenCommunicationListenerAsync>d__8.MoveNext()
      InnerException: 
           ErrorCode=5
           HResult=-2147467259
           Message=Access is denied
           NativeErrorCode=5
           Source=System
           StackTrace:
                at System.Net.HttpListener.AddAllPrefixes()
                at System.Net.HttpListener.Start()
                at Microsoft.Owin.Host.HttpListener.OwinHttpListener.Start(HttpListener listener, Func`2 appFunc, IList`1 addresses, IDictionary`2 capabilities, Func`2 loggerFactory)
                at Microsoft.Owin.Host.HttpListener.OwinServerFactory.Create(Func`2 app, IDictionary`2 properties)
           InnerException: 
    

    如果我在步骤3之后删除每个应用程序,然后在步骤4中再次进行F5部署之前取消设置应用程序类型,则它可以正常工作。仅仅删除每个应用程序不会。

    更新:重建和F5部署似乎间歇性地工作,但简单地说F5部署并不是,至少从我能说的来看。我还想了一下,增加ServiceManifest版本和ApplicationTypeVersion会有所帮助,但这也不能保持一致。唯一可行的是删除和取消配置应用程序&amp;申请类型。

    我在Windows 8.1 Pro x64上以管理员身份运行VS 2015 RC,并且服务是.NET 4.5,就像在教程中一样。

1 个答案:

答案 0 :(得分:0)

此处的错误消息是密钥:消息=访问被拒绝。

通常这意味着两件事之一:

  1. 您的服务正在运行的帐户(默认情况下为“网络服务”)无权打开您所需的URL上的侦听器。必须设置URL ACL。当您在ServiceManifest.xml中指定类型为HTTP的输入端点时,Service Fabric会自动为您执行此操作。
  2. 其他一些进程已在使用该端口。
  3. 鉴于它在您第一次部署时有效,它可能不是#1。并且鉴于它在您删除和取消配置应用程序时有效,我猜您再次使用F5时主机进程不会被终止。当您第二次使用F5时,是否可以检查服务的服务主机进程是否仍在运行?