Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc Asp.NET-调用web服务证书错误,IIS管理器_Asp.net Mvc_Iis_Ssl Certificate_Iis Manager - Fatal编程技术网

Asp.net mvc Asp.NET-调用web服务证书错误,IIS管理器

Asp.net mvc Asp.NET-调用web服务证书错误,IIS管理器,asp.net-mvc,iis,ssl-certificate,iis-manager,Asp.net Mvc,Iis,Ssl Certificate,Iis Manager,我们已经开发了ASP.NET web应用程序,它调用web服务来获取数据。访问web服务需要证书。当我们从VisualStudio启动应用程序时,一切都正常,但当我们在IIS服务器上发布站点时,一切都不正常 要使IIS管理器正常工作,需要在IIS管理器中进行哪些必要设置。我们有3个证书,一个.pfx和两个.cer根文件。这是web.config中的代码 <behaviors> <endpointBehaviors> <behavior name="Clie

我们已经开发了ASP.NET web应用程序,它调用web服务来获取数据。访问web服务需要证书。当我们从VisualStudio启动应用程序时,一切都正常,但当我们在IIS服务器上发布站点时,一切都不正常


要使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控制台安装了证书。

当您从Visual Studio运行证书时,您正在使用凭据运行应用程序。即使IIS Express也使用您的凭据运行

如果将证书导入CurrentUser存储,则将其导入帐户下的存储。 将ASP.NET页面部署到IIS时,默认情况下,它将在DefaultAppPool用户(IIS APPPOOL\DefaultAppPool)下运行。该用户具有不同的证书存储,并且其中可能没有任何这些证书

将这些证书导入LocalMachine store(mmc中的本地计算机存储)并设置私钥的权限,以便DefaultAppPool(或您设置的任何其他池用户)可以访问此私钥 或者将这些证书导入DefaultAppPool的CurrentUser存储 或者(快速而不美观的方法)设置DefaulAppPool以使用您的帐户凭据


我个人会选择第一个选项。

您能描述一下如何调用web服务吗?也许可以添加一些示例代码。另外,请描述您在哪里以及如何使用证书(pfx、cer…)我设法使其工作,这正是您在上面回答的问题,感谢您的努力。。。