2011-04-28 22 views
26

我已經用C#編寫了WCF Web服務。我最初自己託管它,然後決定將它託管在我的PC上本地運行的IIS上。雖然服務正在運行,但我不明白部署過程的幾個方面:如何將Visual Studio中的Web Service發佈到IIS中?

首先,在IIS中託管時此服務的URL與我在web.config中指定的內容不對應。我在那裏指定了「http://localhost:8000/MyServices/OrderService」,這在我自行託管時使用。現在我已經部署到IIS,URL已變爲「http://localhost/MyServices/OrderService」。爲什麼URL不能從我的配置文件中找到?其次,爲了託管Web服務,我在IIS中創建了一個新的Web站點(除了現有的「默認Web站點」外)。我將物理路徑設置爲c:\ inetpub \ wwwroot(不知道這是否正確)並將其他參數保留爲默認值。然後,我將我的/ bin文件夾,我的.svc文件和我的web.config複製到此文件夾中。這相當於一個'虛擬目錄'嗎?

最後,該服務沒有工作,直到(在IIS內)我選擇'轉換爲應用程序'。爲什麼需要選擇「轉換爲應用程序」?

任何人都可以解釋什麼是正確的過程是從Visual Studio發佈到IIS的簡單的Web服務,或指向我的一些很好的文檔,所以我可以理解的過程?

****編輯原始***** 有花更多的時間尋找到這一點,我已經找到了以下內容:

  • 當我在IIS中創建一個網站,我給它一個物理目錄的c:\ inetpub \ wwwroot ....等
  • 如果我然後從Visual Studio中「發佈」,它所做的就是複製所有必需的字段(如/ bin目錄,web.config和.svc文件)到網站的物理目錄即 - c:\ inetpub \ wwwroot ...

您可以手動執行復制以獲得相同的效果。

答案是在IIS上託管時baseAddress被完全忽略。

回答

14

如果使用Visual Studio 2010,則可以右鍵單擊該服務的項目,然後選擇properties。然後選擇Web選項卡。在Servers部分下,您可以配置URL。還有一個按鈕來創建虛擬目錄。

+0

我試圖通過VS 2012託管一個Web服務,這對我有幫助。 – voddy 2014-03-18 00:59:45

+0

使用VS2013也能完成這項工作 – Andez 2014-05-31 12:16:52

相關問題