2012-01-04 265 views
1

我是WCF和Windows移動開發的新手。我試圖創建一個偶爾連接的應用程序,它利用MSFT同步框架,這需要使用WCF服務。在IIS上託管WCF服務

我有一個包含我的智能設備項目,WCF服務庫項目和WCF服務網站項目的Visual Studio項目。

服務託管我的本地機器罰款不使用IIS,當我把它添加到IIS它給了我一個HTTP 404資源找不到錯誤,我可以在http://localhost:55149/ElectricReadingServiceSite/ElectricReading.svc

訪問它不過。我無法弄清楚爲什麼它認爲資源不存在。

這裏是我的web.config:

<?xml version="1.0"?> 
<configuration> 
    <system.serviceModel> 
    <services> 
     <service name="MiddleTierServiceLibrary.ElectricReadingCacheSyncService" 
       behaviorConfiguration="MiddleTierServiceLibrary.ElectricReadingCacheSyncServiceBehavior"> 
     <endpoint 
      address="" 
      binding="basicHttpBinding" 
      contract="MiddleTierServiceLibrary.IElectricReadingCacheSyncContract"> 
      <identity> 
      <dns value="10.104.238.123"/> 
      </identity> 
     </endpoint> 
     <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/> 
     </service> 
    </services> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior name="MiddleTierServiceLibrary.ElectricReadingCacheSyncServiceBehavior"> 
      <serviceMetadata httpGetEnabled="True"/> 
      <serviceDebug includeExceptionDetailInFaults="False" /> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    </system.serviceModel> 
</configuration> 

ElectricReading.svc看起來是這樣的:

<%@ ServiceHost Language="C#" Debug="true" 
     Service="MiddleTierServiceLibrary.ElectricReadingCacheSyncService" %> 

任何幫助,不勝感激!

編輯:有沒有任何工具或步驟可以讓我更好地瞭解哪裏出了問題? 404錯誤對我幫助不大。

+0

您是否檢查過iis配置?有時候WCF不是默認安裝在IIS上的,你應該手動執行此操作。 – 2012-01-04 18:13:59

+0

您正在訪問URL ServiceHost端口#(55149),還是默認端口80(即普通URL)? – jklemmack 2012-01-04 18:18:41

+0

您使用什麼URL訪問IIS上託管的WCF服務? – TheBoyan 2012-01-04 18:23:10

回答

1

可能有多種原因會導致這種情況發生。

他們有些人可能包括:

  • 確保您上傳Bin文件夾
  • 您已經設置了在IIS網站的組裝,但你不與 正確的地址訪問它(確保端口是正確的)
  • 您的應用程序池沒有爲網站設置(如果您使用的是.NET 4.0,則需要將應用程序池設置爲4.0版)在IIS管理器中,轉到ApplicationPools並設置池到您正在使用的.NET版本

嘗試使用Fiddler。它應該記錄它所做的調用,並因此給你一些它沒有找到的細節。