2016-06-30 58 views
0

当该指令同时连接到安全集群执行:注册-ServiceFabricApplicationType总是超时

Register-ServiceFabricApplicationType -ApplicationPathInImageStore 'MyType' -TimeoutSec 600 -Debug -Verbose 

...它抛出一个超时异常。我可以毫无问题地运行Copy-ServiceFabricApplicationPackage,所以显然可以连接到群集。

注册应用程序类型不应该是一个沉重的操作,因此我怀疑存在一些潜在的问题。

堆栈跟踪:

VERBOSE: System.TimeoutException: Operation timed out. ---> System.Runtime.InteropServices.COMException: Exception from HRESULT: 0x80071BFF 
    at System.Fabric.Interop.NativeClient.IFabricApplicationManagementClient6.EndProvisionApplicationType(IFabricAsyncOperationContext context) 
    at System.Fabric.Interop.Utility.<>c__DisplayClassa.<WrapNativeAsyncInvoke>b__9(IFabricAsyncOperationContext context) 
    at System.Fabric.Interop.AsyncCallOutAdapter2`1.Finish(IFabricAsyncOperationContext context, Boolean expectedCompletedSynchronously) 
    --- End of inner exception stack trace --- 
Register-ServiceFabricApplicationType : Operation timed out. 
At line:1 char:1 
+ Register-ServiceFabricApplicationType -ApplicationPathInImageStore 'M ... 
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : OperationTimeout: (Microsoft.Servi...usterConnection:ClusterConnection) [Register-ServiceFabricApplicationType], TimeoutException 
    + FullyQualifiedErrorId : RegisterApplicationTypeErrorId,Microsoft.ServiceFabric.Powershell.RegisterApplicationType 

任何帮助,不胜感激!

+0

您的代码包中有多少个文件?当我们在一个软件包中有大于1,000个文件时(不是确切的限制),我们遇到了这个问题。 – Haukman

+0

@Haukman“pkg”文件夹有〜6500,但每个服务有〜700。这些服务也不是特别大,大部分文件都是“批准/套餐”。 –

+0

我怀疑集群设置有问题,尝试手动发布(仅在VS之前发布)朝向非安全集群,并且工作正常。所以它可能是一个错误的集群配置/证书问题,或者两者兼而有之。 –

回答

0

下面是我们在一个非常类似的情况什么工作:

请申请的所有节点上执行以下缓解步骤(一次一个节点):

  1. 转到集群的数据根部,由如果您未在部署中指定数据路径属性,则默认为“D:\ SvcFab \”C:\ ProgramData \ Microsoft \ SF。按名称查找文件夹。在该文件夹内,您将看到文件Fabric.Package.current.xml。创建一个备份。
  2. 打开Fabric.Package.current.xml文件,查找Fabric.Config版本:
  3. 转到config文件夹该版本并查找将Settings.xml文件。
  4. 备份Settings.xml文件并打开Settings.xml文件。
  5. 寻找部分名为“EseStore”
<Section Name="EseStore"> 

</Section> 
  • 如果区段存在,这个参数添加到部分(喜欢键入将Settings.xml文件比这些文本复制粘贴因为复制粘贴有时会在最后附加额外的无效字符)。
  • <Section Name="EseStore"> 
    <Parameter Name="MaxCursors" Value="32768" /> 
    </Section> 
    
  • 如果具有名称“EseStore”的部分不存在,加以如下参数的段名和保存该文件。
  • 在节点上杀死FileStoreService.exe
  • 等待FileStoreService.exe回来,然后继续下一个节点。
  • 在完成对所有节点的缓解并且群集恢复正常后,请重试部署该包。在生产使用之前,请确保先在测试机器上进行测试。

    +1

    非常感谢,让我们尝试一下,我们会将此标记为解决方案。 –

    +1

    也适合我 – user1496062

    6

    如果这是由Azure托管的群集,则在下次执行群集代码或配置升级时,这些设置将恢复为默认值。请通过Azure资源管理器或PowerShell设置Service Fabric资源中的值来更改它们。这将确保这些设置被保留。

    "fabricSettings": [ 
         { 
         "name": "EseStore", 
         "parameters": [ 
          { 
          "name": "MaxCursors", 
          "value": "32768" 
          } 
         ] 
         } 
    
    ], 
    

    在本地发展集群,您可以修改与下面的部分位于C:\Program Files\Microsoft SDKs\Service Fabric\ClusterSetup\默认的簇清单XML文件,然后重新创建群集。

    <Section Name="EseStore"> 
        <Parameter Name="MaxCursors" Value="32768" /> 
    </Section>