我們開發了調用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