无法在本地IIS Web服务器上部署的RESTFul WCF服务上访问.svc

时间:2009-10-28 19:18:01

标签: iis deployment wcf

我需要帮助,我是WCF世界的新手,最近从SOAP Webservices转换过来。

当我从VS2008 ASP.NET开发服务器(即调试模式)运行时,WCF服务运行良好。当我尝试通过IIS访问服务时出现问题。

我在托管在端口8082(http://localhost:8082)上的本地IIS Web服务器上设置了一个网站,并创建了一个指向包含我的WCF服务代码的物理目录的VirtualDirectory(1.0)。该网站设置为ASP.NET 2.0.50727。我可以访问登录页面以及各种各样的.aspx页面但是当我尝试访问Service.svc时,浏览器永远不会到达那里并且只是闲置。

http://localhost:8082/1.0/Service.svc  

我的问题是我缺少什么设置让IIS内部的服务工作,因为我已经知道它在开发服务器下运行。

我正在附加我的web.config的一部分,如果这会有所帮助。

    <system.serviceModel>
    <services>
        <service name="Service1" behaviorConfiguration="Service1Behavior">
            <!-- Service Endpoints -->
            <endpoint address="" binding="wsHttpBinding" contract="IService1">
                <!-- 
          Upon deployment, the following identity element should be removed or replaced to reflect the 
          identity under which the deployed service runs.  If removed, WCF will infer an appropriate identity 
          automatically.
      -->
                <identity>
                    <dns value="localhost"/>
                </identity>
            </endpoint>
            <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
        </service>
    </services>
    <behaviors>
        <serviceBehaviors>
            <behavior name="Service1Behavior">
                <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
                <serviceMetadata httpGetEnabled="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="true"/>
            </behavior>
        </serviceBehaviors>
    </behaviors>
</system.serviceModel>

2 个答案:

答案 0 :(得分:1)

你谈论RESTful服务,但是你使用的是wsHttpBinding ....这不是REST绑定 - 那就是“webHttpBinding”。

在大多数情况下,WCF服务 ARE 基于SOAP - 除了webHttpBinding之外的任何绑定都是SOAP端点,所以你的wsHttpBinding端点肯定是 RESTful in任何方式,形状或形式。您可以使用例如与之通信SoapUI或更好 - Visual Studio文件夹中的WcfTestClient。

但是,您不能期望通过浏览到该URL来获取XML形状的数据。

马克

答案 1 :(得分:1)

  

默认情况下,未配置IIS 7.0   对于WCF服务,我们将会   配置IIS 7.0以运行WCF服务   我将打破整个程序   步骤。

http://basitblog.wordpress.com/2010/01/12/deploy-wcf-service-over-iis-7-0/