2013-08-30 118 views
2

我已經閱讀了互聯網上用於替換標準WCF登錄頁面的自定義站點的內容,但是,這些解決方案似乎不適用於IIS託管。 this questionthis walkthrough均建議創建一個無與倫比的消息處理程序並禁用元數據發佈。但是,兩者的意見都表明它在IIS中託管時不起作用,我可以證實這似乎是這種情況。在IIS 7.5中託管的自定義WCF登錄頁面

是否有缺少IIS需要的步驟?需要在服務器上配置此功能才能工作?任何幫助都會很棒。這是一個.NET 4.5 WCF SOAP服務。

回答

2

在IIS託管的WCF服務中,ServiceHost由w3wp爲您創建(與創建它的selfhost相對)。在此ServiceHost中默認添加ServiceDebug行爲,導致此操作無法正常工作。啓動WCF 4.5,您可以使用代碼輕鬆配置您的IIS託管服務。將這段代碼添加到您的服務實現中。

public class Service1 : IService1, ILandingPage 
    { 
... 
... 

public static void Configure(ServiceConfiguration serviceConfig) 
     { 
      //Still continue to load the service configuration from your web.config file as before. 
      serviceConfig.LoadFromConfiguration(); 
      //Remove the serviceDebug behavior. 
      serviceConfig.Description.Behaviors.Remove<ServiceDebugBehavior>(); 
     } 
} 

有關在代碼中配置IIS託管服務的更多詳細信息,請參閱this。如果您使用的是.net框架版本< 4.5,則可以通過實施自定義服務主機工廠來完成相同的操作,並自行在代碼中執行所有服務配置。

+0

110%有幫助!而且,它只是「按原樣」工作!非常感謝! –

+1

它可以重定向到一個ASP.NET頁面,而不是一個普通的HTML頁面?我嘗試在一個功能更完整的ASP.NET頁面中替換普通的HTML頁面,並且似乎ASP.NET頁面生命週期不會發生,只會呈現靜態HTML。 –