我能够在本地服务结构集群中运行无状态服务。但是,当我添加https终点时,激活失败。
我做了以下更改:
ServiceManifest.xml:
<Endpoint Name="ServiceEndpoint" Type="Input" Protocol="https" Port="443" CertificateRef="my_api_cert" />
ApplicationManifest.xml:
<Policies>
<EndpointBindingPolicy EndpointRef="ServiceEndpoint" CertificateRef="my_api_cert" />
</Policies>
<Certificates>
<EndpointCertificate X509FindValue="[Api_SslCertHash]" Name="my_api_cert" />
</Certificates>
我已将新创建的证书上传到Local Machine \ My store。
我在集群管理器中收到以下错误:
错误事件:SourceId ='System.Hosting',Property ='Activation:1.0:1.0'。 激活期间出错。
这个问题的解决方案是什么?
答案 0 :(得分:2)
我有完全相同的问题,我的问题是我没有在ApplicationManifest.xml中传递正确的指纹。 确保您的[Api_SslCertHash]具有正确的证书指纹。
在EventViewer中&gt; Microsoft Service Fabric,我看到了:无法为端口配置端口证书:[my port],certificatefindvalue [我的错误证书指纹],错误0x80070520
如果你谷歌这个错误代码,你会发现它与使用IIS或类似的东西绑定SSL有关。因此,它缩小到证书,然后我意识到我没有使用正确的证书。
检查并查看是否遗漏了任何内容:http://ronaldwildenberg.com/running-an-azure-service-fabric-cluster-locally-on-ssl/此链接是将https添加到服务结构服务的分步教程,您可以将其用作检查列表。
答案 1 :(得分:2)
正如其他人所提到的,当证书指纹不正确时,可能会发生这种情况。然而,指纹不正确的一个具体原因可能是如此令人沮丧,因为它应该得到自己的答案。
我引用TChiang phorego (Partner) from the MSDN forums(强调我的):
当您从证书中复制指纹时,诀窍是 商店,它前面有一些隐藏的字符(当我放置 将光标放在前面并按&lt; - 光标不会前进 左),所以当你把它粘贴到清单中时,SF无法安装 服务。因此,请确保删除隐藏的字符然后 没关系。
答案 2 :(得分:0)
尝试将以下内容添加到applicationmanifest.xml
<ServiceManifestImport>
<ServiceManifestRef ServiceManifestName="WebApiServicePkg" ServiceManifestVersion="1.0.0" />
<ConfigOverrides />
<Policies>
<EndpointBindingPolicy CertificateRef="SslCert" EndpointRef="ServiceEndpoint" />
</Policies>
</ServiceManifestImport>
<Certificates>
<EndpointCertificate Name="SslCert" X509FindValue="[SslCert_Thumbprint]" X509StoreName="My" />
</Certificates>