2009-10-28 61 views
3

我需要幫助,我是最近從SOAP Web服務轉換到WCF世界的新手。Can not not access .svc on RESTFul WCF Service部署在本地IIS Web服務器上

當我從VS2008 ASP.NET開發服務器(即調試模式)運行時,WCF服務運行良好。當我嘗試通過IIS訪問服務時出現問題。

我已經在託管在端口8082(http://localhost:8082)上的本地IIS網絡服務器上設置了一個網站,並創建了一個指向包含我的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> 

回答

1

請您談一下RESTful服務,但你使用的wsHttpBinding ....這不是REST綁定 - 這將是「的WebHttpBinding」。

在大多數情況下,WCF服務ARE基於SOAP的 - 任何除外的WebHttpBinding綁定的是SOAP端點,讓您的wsHttpBinding終點肯定是以任何方式,形狀或形式不 REST風格。您可以使用例如SoapUI或更好 - 您的Visual Studio文件夾中的WcfTestClient。

然而,只要瀏覽到那個URL,你就不能期望從它那裏得到XML格式的數據。

馬克

1

默認情況下,IIS 7.0未配置 爲WCF服務,我們將 配置IIS 7.0運行WCF服務 我會分手的整個過程中 步驟。

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

+1

你需要多一個項目添加到待辦事項列表。可能重新安裝最新的框架並檢查是否設置了IIS(我剛剛遇到問題,它以某種方式跳回到2.0,這導致我延遲了幾天)。 – 2013-07-23 09:29:17