2009-02-28 91 views
4

我在VS2008中放置了一個小型的WCF服務,當我嘗試使用HTTP協議運行主機時,它發生炸彈,因爲它沒有適當的權利。在我的「Host.Open()」一行中,我收到以下例外:「HTTP無法註冊URL http://+:9001/。您的進程無權訪問此名稱空間。」我似乎沒有使用TCP的這個問題。我的o/s是Vista家庭高級版。在Vista中託管WCF服務

當我嘗試在VS2008中進行調試時發生這種情況。經過大量研究,我確定我可以讓主機通過構建運行,進入「bin」文件夾,然後右鍵單擊我的可執行文件,選擇「以管理員身份運行」。當我嘗試使用WcfSvcHost.exe時發生了同樣的情況。在我成功獲取WcfSvcHost來運行我的服務之前,我必須使用「以管理員身份運行」從我的菜單中打開VS2008命令提示符窗口。

有沒有辦法做到這一點,而不是使用這種解決方法?當我嘗試在Windows 2003服務器上部署這個星期時,我會遇到類似的問題嗎?

回答

7

此鏈接可以幫助你:http://msdn.microsoft.com/en-us/library/ms733768.aspx

短版:預登記從特權的控制檯的URL /命名空間

的netsh的http添加urlacl URL = http://+:9001/用戶=域\用戶

+0

我昨天試過這個,無法讓它工作。你指出它應該是一個「特權控制檯」,因此我應該做「Admin」命令提示符。我剛纔嘗試了這個,並且它工作。我想我必須在每次重新啓動後執行此操作? – 2009-02-28 21:16:15

+0

AFAIK您只需要執行一次(每個要保留的名稱空間/用戶對) – mostlytech 2009-02-28 21:58:59

2

確保您啓動VS管理員..

+0

好點。我的帳戶是一個管理員帳戶,但我經常忘記我沒有給予管理員權限,除非我明確要求。令人沮喪... – 2009-02-28 21:13:00

0

我有一個類似的問題在這裏:

WCF ServiceHost basicHttpBinding 503 error

netsh命令適用於Vista,但對於Windows 2003服務器,有一個HttpCfg.exe實用程序,允許您爲帳戶註冊URL /名稱空間。不知道如果netsh是在2003年可用。

我從來沒有真正得到它在Vista上工作,我仍然得到503錯誤,當我嘗試訪問服務。如果你遇到同樣的問題/想出來,我會很感激,如果你再次發佈!由於

1

本地,你可以這樣改變你的基址的東西:

<host> 
     <baseAddresses> 
     <add baseAddress="http://localhost:8731/Design_Time_Addresses/MyService/" /> 
     </baseAddresses> 
    </host> 

主要部分是增加了「設計_ _時間地址」。如果你創建了一個WCF服務庫項目,默認情況下它會像這樣設置項目的App.config。一切工作正常這種方式,但如果您刪除「設計_時間_地址」,並嘗試運行它與「http://localhost:8731/MyService/」,你會得到你遇到的錯誤。