我需要帮助,我是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>
答案 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/