2010-06-19 206 views
1

好的,這是不可能的,但我會盡力在這裏解釋這種情況。假設我們有案例,爲了讓一個簡單的SOAP Web服務運行(查詢數據庫等),我們需要快速設置Web服務器。在沒有Web服務器的情況下構建Web服務

在VS中,雖然在調試web項目時,它創建了一個快速ASP.NET開發服務器,而不依賴於可能安裝在PC上的實際IIS。

有沒有什麼項目能夠做到這樣的事情? 這對於小型項目來說很理想,其中一個簡單的可執行文件就可以讓服務器準備就緒,並允許Web服務立即執行。

我已經看了一些東西,過網像http://msdn.microsoft.com/en-us/magazine/cc163879.aspxhttp://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2004/05/24/4479.aspx,但他們似乎相當過時,我不知道他們的工作有多好(還沒有徹底測試它們)

編輯:我建立一個應用程序就像你所建議的那樣。但是,如何使用此方法實現對服務的HTTP GET/POST請求?我在操作合同後嘗試使用WebGet,但沒有奏效。例如,我的服務是http://localhost:8080/Service,我想使用它,例如http://localhost:8080/Service/getMethod?x=2

回答

1

好吧,

我已經做了這樣的IM張貼在這裏,以幫助任何人誰擁有類似的問題的問題。 照常創建您的WCF服務文件,然後通過使用ServiceHost(或WebServiceHost)可以輕鬆創建WCF服務。 爲了使用GET http請求使其與移動設備(如iphone)進行通信變得簡單,可以在服務方法上使用WebGet,並確保使用WebHttpBinding for WebServiceHost或WebHttpBinding手動添加服務端點,並使用WebHttpBehavior for ServiceHost 。 然後你可以打電話給你的服務方式,如http://localhost:port/webhttpendpointaddress/mymethod?x=2

1

我相信Visual Studio使用的開發服務器是基於卡西尼代碼庫(其中有一個叉here)。我還發現this關於託管asp.net運行時的文章。它也創建了一段時間(2004年),但自2008年以來已更新。我認爲很多核心概念可能仍然是一樣的。

另一種方法是使用HttpListener類的自己的Web服務器。如果你想使用它來託管asmx類型的服務,這可能需要一些工作,但是如果你正在做RESTful服務,它不會太糟糕的選項(這實際上如果你不在IIS下託管它,RavenDB是如何工作的) 。

1

WCF服務可以託管在幾乎任何類型的應用程序中,包括Windows服務或控制檯應用程序。根本不需要Web服務器。

相關問題