2014-01-06 88 views
1

我有一個wcf應用程序。它有「Service1.svc」文件。在我指定的web.config文件中指定IIS託管wcf返回我空白頁

http://localhost:2005/EmployeeService.svc 

作爲端點。當從Visual Studio中點擊瀏覽時,沒有問題。但是,當我將它託管在IIS服務器上時,我得到一個空白頁面。有趣的是,如果我從網上刪除地址。這次配置我可以在這個地址看到服務。

http://localhost:2005/EmployeeService.svc 

Web.config文件如下:

<?xml version="1.0"?> 
<configuration> 
    <system.serviceModel> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior name="EmployeeServiceBehaviour"> 
      <serviceMetadata httpGetEnabled="true" /> 
      <serviceDebug includeExceptionDetailInFaults="true" /> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    <services> 
     <service behaviorConfiguration="EmployeeServiceBehaviour" name="EmployeeConfiguration"> 
     <endpoint address="http://localhost:2005/EmployeeService.svc" binding="basicHttpBinding" 
      bindingConfiguration="" contract="IEmployeeConfiguration" /> 
     </service> 
    </services> 
    </system.serviceModel> 
    <system.web> 
    <compilation debug="true"/> 
    </system.web> 
    <system.webServer> 
    <directoryBrowse enabled="true"/> 
    </system.webServer> 
</configuration> 

能否請您解釋一下,爲什麼我得到IIS一個空白頁時,我提供ADRESS。

+1

您需要顯示web.config serviceModel元素內容以獲得有意義的答案。不知道你的意思是將URL設置爲「綁定」。 –

+1

我認爲他的意思是「端點」 – Amy

+0

Sory,編輯問題 –

回答

2

我想你可以在Service.svc之前刪除地址上的所有文本。這可能是一個與不同的網址的問題。

當您指定地址部分時,您告訴WCF服務僅在該地址上可用。在瀏覽端點時,WCF將找不到與給定URL匹配的內容並退出。

當您有多個端點時,您需要地址字段。否則你不會。

http://msdn.microsoft.com/en-us/library/ms733749(v=vs.110).aspx

,特別是這部分:

當IIS託管,你不親自管理ServiceHost的實例。在IIS中託管時,基地址始終是服務的.svc文件中指定的地址。因此,您必須使用IIS託管的服務端點的相對端點地址。提供完全限定的端點地址可能會導致服務部署出現錯誤。

+0

但主要的問題是:如果我正確指定端點地址,我會得到空白頁。如果我沒有指定任何端點地址,我可以獲得該服務。那麼,coerrct端點地址有什麼問題。爲什麼我會得到空白頁? –

+1

查看我的更新回答 –

+0

謝謝,這真的澄清了問題 –

1

檢查SVC標記中的Service屬性是否等於您的實現類。

檢查端點合同名稱。它必須是您的界面的完整名稱。不要添加程序集名稱,它不會工作。

檢查<serviceMetadata httpGetEnabled="true" />。如果爲false,你也會得到空白頁面。

和第四個幫助我的變化(但我不知道爲什麼):刪除行爲名稱<behavior name="">並從service刪除behaviorConfiguration屬性元素。它成爲默認,所以行爲將被使用。

2

這可能發生在HTTP激活未安裝在Windows安裝程序和功能中。檢查.net 3.5和4.6的HTTP激活,以啓用通過HTTP請求打開WCF服務,以傳遞給IIS中託管的.svc文件。