IIS托管的WCF返回空白页

jexiocij  于 2023-06-06  发布在  其他
关注(0)|答案(4)|浏览(421)

我有一个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上得到一个空白页,当我提供的地址。

e0bqpujr

e0bqpujr1#

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

sqougxex

sqougxex2#

我认为您可以删除Service.svc之前的地址上的所有文本。这可能是不同URL的问题。
当您指定地址部分时,您告诉WCF该服务仅在该地址上可用。当遍历端点时,WCF不会找到与给定URL匹配的端点并退出。
当您有多个端点时,您需要地址字段。否则你就不会。
读取http://msdn.microsoft.com/en-us/library/ms733749(v=vs.110).aspx
特别是这一部分:
使用IIS托管时,您不需要自己管理ServiceHost示例。在IIS中承载服务时,基址始终是在.svc文件中为服务指定的地址。因此,必须对IIS承载的服务终结点使用相对终结点地址。提供完全限定的端点地址可能会导致服务部署中出现错误。

jyztefdp

jyztefdp3#

检查SVC标记中的Service属性是否等于您的实现类。
检查终结点协定名称。它必须是您的接口的全名。不要添加程序集名称,这将不起作用。
检查<serviceMetadata httpGetEnabled="true" />。如果为false,您也会得到空白页。
第四个改变帮助了我(但我不知道为什么):删除行为名称<behavior name="">并从service元素中删除behaviorConfiguration属性。它将成为默认值,因此无论如何都将使用该行为。

webghufk

webghufk4#

1.请确保您创建了一个具有活动用户的应用程序池,如下所示:https://stackoverflow.com/a/19654633/2148387
1.确保在承载WCF的位置创建了Web应用程序
1.检查AppPool和WebApp是否正在运行
1.在Web.config中启用目录浏览,如下所示:https://stackoverflow.com/a/19630263/2148387

相关问题