在IIS中托管Web服务-无法访问该服务

时间:2019-01-03 20:44:53

标签: c# wcf

我在Visual Studio中有一个WCF服务应用程序项目,其中包含以下文件

  • ZooWebService.svc
  • WebConfig

我试图将Web Service托管在IIS中,但是当我从IIS浏览到Web Service时,Web Service根本无法加载。它只是在浏览器中显示“正在加载”。

这是我的WebConfig文件:

 <?xml version="1.0"?>
    <configuration>
    <appSettings>
    <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
     </appSettings>
     <system.web>
    <compilation debug="false" targetFramework="4.6.1" />
    <httpRuntime targetFramework="4.6.1"/>
     </system.web>
      <system.serviceModel>
    <services>
      <service behaviorConfiguration="Default" 
     name="WCFWebService.ZooWCFService">
        <endpoint address="" binding="basicHttpBinding" 
     contract="WCFWebService.IZooWCFService" />
        <endpoint address="mex" binding="mexHttpBinding" 
        contract="IMetadataExchange" />
        <host>
          <baseAddresses>
            <add baseAddress="http://localhost:8080/" />
          </baseAddresses>
        </host>
        </service>
      </services>
       <behaviors>
      <endpointBehaviors>
        <behavior name="webBehavior">
          <webHttp />
        </behavior>
      </endpointBehaviors>
      <serviceBehaviors>
        <behavior name="Default">
          <serviceMetadata httpGetEnabled="true"/>
          <serviceDebug includeExceptionDetailInFaults="true"/>
        </behavior>
         </serviceBehaviors>
       </behaviors>
     </system.serviceModel>
     </configuration>

我做了以下事情,所以我做错了什么?

  1. 打开IIS
  2. 右键单击默认网站
  3. 选择“添加应用程序”
  4. 填充的“别名”字段
  5. 填充的“物理路径”到解决方案内容所在的目录
  6. 单击确定
  7. 在Visual Studio中重建解决方案

2 个答案:

答案 0 :(得分:1)

要在IIS中启用WCF,您可能必须先为.net框架启用HTTP激活功能。

一些链接可以做到这一点 https://docs.sdl.com/LiveContent/content/en-US/SDL%20Tridion%20full%20documentation-v1/GUID-326D6F7B-08EC-43EB-A5A7-9C51DD9E555C

https://pubs.vmware.com/mirage-56/index.jsp?topic=%2Fcom.vmware.mirage.api.pg.doc%2FGUID-552D845B-E530-4898-A06B-4F73E668BEFF.html

完成此操作后,您可以尝试将WCF直接从Visual Studio部署到本地IIS>

右键单击WCF项目->转到属性->属性窗口中->选择Web选项卡->在服务器部分中选择本地IIS,然后单击创建虚拟目录。

现在从Visual Studio中运行WCF,它将在本地IIS中托管WCF。

sample

答案 1 :(得分:1)

我们不需要在配置文件中指定要在网站绑定模块中设置的基址。
https://social.msdn.microsoft.com/Forums/vstudio/en-US/d42fc165-052d-476a-9580-1240b3d0293d/specify-endpoint-in-wcf-webconfig?forum=wcf
那么我们应该在IIS中启用WCF功能。 enter image description here
最后,我们可以在http://ip:port/xxxx.svc中看到Web服务描述。 enter image description here 随时让我知道是否有什么可以帮助您的。