我想在.NET 3.5中構建一個支持SOAP的C#服務,並顯示WSDL和REST。使單個WCF服務同時支持SOAP,REST和WSDL
SOAP服務和WSDL生成很容易使用ServiceHost
和BasicHttpBinding
類。得到這個工作,客戶很高興。
因爲SOAP調用所有使用的簡單參數,所以客戶端開發人員爲某些命令請求了一個REST接口。因此,我將ServiceHost類更改爲WebServiceHost
,添加了必要的WebInvoke
和WebGet
屬性,添加了WebHttpBinding
類,並且賓果 - REST和SOAP都在使用一種服務。很酷,改變一個界面,REST和SOAP都得到了新的東西。
但是有一個問題 - WSDL不再生成。我無法瀏覽到http://server/service?wsdl並獲取WSDL文件。檢查MSDN文檔,似乎是默認WebServiceHost
的行爲。
問題:我可以重寫此行爲以便可以獲取WSDL嗎?不必像以前那樣使用相同的URL - 它可以更改 - 但我只需要有一些URL可用於爲這些SOAP開發人員獲取WSDL。
你好賈森,我很想知道你是否仍在使用這種方法,以及它是如何工作或不爲你工作的。你是否發現你必須複製支持兩者的任何方法(核心邏輯)? – schmoopy 2012-01-26 20:08:22
我只需要創建兩個端點併爲每個命令添加一個額外的屬性。 – 2012-01-26 20:28:02
解決方案的類似問題。 http://social.msdn.microsoft.com/Forums/en/wcf/thread/845d0bbd-52b4-420f-bf06-793d53ef93ba – maciejW 2010-10-17 01:47:56