我们开发了调用Web服务来获取数据的ASP.NET Web应用程序。访问Web服务需要证书。当我们从Visual Studio启动应用程序时,一切正常,但当我们在IIS服务器上发布网站时,它不起作用。Asp.NET - 调用Web服务证书错误,IIS管理器
什么是在IIS管理器中作出的必要设置。我们有3个证书,一个.pfx和两个.cer根文件。
我们开发了调用Web服务来获取数据的ASP.NET Web应用程序。访问Web服务需要证书。当我们从Visual Studio启动应用程序时,一切正常,但当我们在IIS服务器上发布网站时,它不起作用。Asp.NET - 调用Web服务证书错误,IIS管理器
什么是在IIS管理器中作出的必要设置。我们有3个证书,一个.pfx和两个.cer根文件。
这是从web.config中
代码<behaviors>
<endpointBehaviors>
<behavior name="Client2WaySSL">
<clientCredentials>
<clientCertificate findValue="CN=lsu.test.client.service.mup.hr" storeLocation="CurrentUser" />
<serviceCertificate>
<defaultCertificate findValue="CN=test.service.mup.hr" storeLocation="CurrentUser" storeName="TrustedPeople" />
</serviceCertificate>
</clientCredentials>
</behavior>
</endpointBehaviors>
</behaviors>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_MUP.LokalnaSamouprava.FizickaOsoba.WebServiceInterface">
<security mode="Transport">
<transport clientCredentialType="Certificate" proxyCredentialType="None" realm="" />
</security>
</binding>
<binding name="BasicHttpBinding_MUP.LokalnaSamouprava.FizickaOsoba.WebServiceInterface1" />
</basicHttpBinding>
</bindings>
<client>
<endpoint address="https://lsu.test.service.mup.hr:9001/FizickaOsobaService.svc" binding="basicHttpBinding" behaviorConfiguration="Client2WaySSL" bindingConfiguration="BasicHttpBinding_MUP.LokalnaSamouprava.FizickaOsoba.WebServiceInterface" contract="MUPServis.MUPLokalnaSamoupravaFizickaOsobaWebServiceInterface" name="MUP.LokalnaSamouprava.FizickaOsoba.WebServicePort" />
</client>
我们已经安装了通过MMC控制台certficates。
当您从Visual Studio运行它时,您将使用凭据运行该应用程序。即使IIS Express在您的凭据下运行。
如果您将证书导入到CurrentUser商店,那么您已将其导入到您帐户下的商店。 当您将ASP.NET页面部署到IIS时,默认情况下它将在DefaultAppPool用户(IIS APPPOOL \ DefaultAppPool)下运行。该用户拥有不同的证书存储,并且可能没有任何证书。
将这些证书导入到LocalMachine存储(以mmc为本地计算机存储),并在私钥上设置权限,以便DefaultAppPool(或您设置的任何其他池用户)可以访问此私钥 或将这些证书导入到当前用户存储的DefaultAppPool 或(快速而不是漂亮的方式)设置DefaulAppPool使用您的帐户凭据。
我会亲自去第一个选项。
我设法使它工作,这正是你上面回答的问题,谢谢你的努力...... –
你能描述一下你如何调用Web服务吗?也许添加一些示例代码。也请描述你在哪里以及如何使用证书(pfx,cer ...) – pepo