IIS托管的wcf返回空白页面

时间:2014-01-06 20:09:14

标签: c# wcf iis

我有一个wcf应用程序。它有“Service1.svc”文件。在我指定的web.config文件中

http://localhost:2005/EmployeeService.svc

作为终点。从Visual Studio单击浏览时没有问题。但是,当我在IIS服务器上托管它时,我得到一个空白页面。有趣的是,如果我从网上删除地址。配置这次我可以在这个地址看到服务。

http://localhost:2005/EmployeeService.svc

web.config文件如下:

    <?xml version="1.0"?>
<configuration>
  <system.serviceModel>
    <behaviors>
      <serviceBehaviors>
        <behavior name="EmployeeServiceBehaviour">
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="true" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <services>
      <service behaviorConfiguration="EmployeeServiceBehaviour" name="EmployeeConfiguration">
        <endpoint address="http://localhost:2005/EmployeeService.svc" binding="basicHttpBinding"
          bindingConfiguration="" contract="IEmployeeConfiguration" />
      </service>
    </services>
  </system.serviceModel>
  <system.web>
    <compilation debug="true"/>
  </system.web>
  <system.webServer>
    <directoryBrowse enabled="true"/>
  </system.webServer>
</configuration>

请您解释一下,为什么我在提供地址时会在IIS上显示空白页。

4 个答案:

答案 0 :(得分:2)

我认为您可以在Service.svc之前删除地址上的所有文本。这可能是不同网址的问题。

指定地址部分时,告诉WCF该服务仅在该地址上可用。在浏览端点时,WCF将找不到与给定URL匹配的节目并进行纾困。

如果您有多个端点,则需要地址字段。否则你不会。

阅读http://msdn.microsoft.com/en-us/library/ms733749(v=vs.110).aspx

特别是这一部分:

使用IIS托管时,您不自行管理ServiceHost实例。在IIS中托管时,基址始终是服务的.svc文件中指定的地址。因此,您必须为IIS托管的服务端点使用相对端点地址。提供完全限定的端点地址可能会导致服务部署出错。

答案 1 :(得分:2)

这可能发生在Windows安装中的“程序和功能”中未安装HTTP激活。检查.Net 3.5和4.6的HTTP激活,以启用通过HTTP请求打开WCF服务到IIS中托管的.svc文件。

答案 2 :(得分:1)

检查SVC标记中的Service属性是否等于您的实现类。

检查端点合同名称。它必须是您的界面的完整名称。不要添加程序集名称,它将无法正常工作。

检查<serviceMetadata httpGetEnabled="true" />。如果为false,您也会得到空白页。

第四次改变帮助了我(但我不明白为什么):删除行为名称<behavior name="">并从behaviorConfiguration元素中删除service属性。它变为默认值,因此无论如何都会使用该行为。

答案 3 :(得分:0)

  1. 确保像这样https://stackoverflow.com/a/19654633/2148387

  2. 与活动用户建立了应用程序池
  3. 确保在托管WCF的位置创建了Web应用程序

  4. 检查AppPool和WebApp是否正在运行

  5. 启用目录在Web.config中浏览,如下所示:https://stackoverflow.com/a/19630263/2148387