在IIS中部署WCF服务错误-“本地主机当前无法处理此请求”

时间:2018-08-23 21:59:15

标签: .net wcf iis

我有一个要在IIS中部署的WCF service.svc。我使用.net 4.5应用程序池在默认网站下为该服务创建了一个IIS应用程序,但是当我尝试从IIS管理器中浏览.svc文件时,浏览器报告以下错误“本地主机当前无法处理此请求”。

如果我从VS中单击.svc文件上的浏览,它将正确解析到WSDL元数据页面,并且如果我使用服务文件夹所在的Visual Studio中的路径创建IIS应用程序,则它可以正常工作并且url可以解析。我不明白为什么将服务发布到另一个在IIS中不起作用的文件夹位置后的原因。似乎与Visual Studio的安装位置有关。

有人可以帮助我理解为什么吗?我需要能够将此服务连同关联的bin文件一起发布到另一个客户端系统,并使其正常工作。

Web.config文件:

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <startup>
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>
      </startup>
      <appSettings>
      </appSettings>

      <system.serviceModel>
        <client/>
        <bindings>
          <basicHttpBinding>
            <binding name="basicHttpBinding_testLink" maxReceivedMessageSize="20000000"/>
          </basicHttpBinding>
        </bindings>

        <behaviors>
          <serviceBehaviors>
            <behavior>
              <!-- To avoid disclosing metadata information, set the values below to false before deployment -->
              <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
              <!-- To receive exception details in faults for debugging purposes, set the value below to true.  Set to false before deployment to avoid disclosing exception information -->
              <serviceDebug includeExceptionDetailInFaults="false"/>
            </behavior>
          </serviceBehaviors>
        </behaviors>

        <!-- Service endpoints to expose/consume -->
        <services>
          <service name="testLink.testManager">

            <endpoint address="testService" binding="basicHttpBinding" bindingConfiguration="basicHttpBinding_testLink" contract="testLink.ITestManager"/>
            <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"  />

          </service>
        </services>

        <protocolMapping>
          <add binding="basicHttpBinding" scheme="http"/>
        </protocolMapping>
        <serviceHostingEnvironment aspNetCompatibilityEnabled="false" multipleSiteBindingsEnabled="true"/>

      </system.serviceModel>

    </configuration>

1 个答案:

答案 0 :(得分:0)

由于没有人可以回答此问题,因此我自己更深入地解决了该问题,并发现,当您将IIS WCF服务作为已发布的文件系统发布时,需要将已发布的文件夹放在inetpub / wwwroot文件夹中,以用于IIS管理器使用,否则将无法正确部署和解决。