2012-03-09 44 views
3

我在服務器中託管了一項服務。服務身份驗證使用Windows身份驗證。我想在Visual Studio 2010的網站開發中使用此服務。當我嘗試添加引用時,它說出以下錯誤。在Visual Studio中使用Windows身份驗證服務進行客戶端開發

「Security settings for this service require Windows Authentication but it is not enabled for the IIS application that hosts this service.」 

我該怎麼做才能克服它,並能夠使用服務進行開發?

注意:錯誤消息是顯而易見的。我正在尋找的是解決這個問題的最好方法。

注意:當我在Mozilla Firefox中鍵入服務地址時,它會要求輸入我的Windows憑據 - 輸入憑證後,它會提供服務說明。問題是當我通過Visual Studio使用它時。


+0

你是通過IIS還是內置的網絡服務器來測試這個嗎? – jao 2012-03-09 13:42:21

+0

如果已安裝,則在控制面板>打開或關閉Windows功能> Windows 7中的Internet信息服務中啓用它。 – jao 2012-03-09 13:52:20

+1

我建議IIS Express:http://www.microsoft.com/download/en/details.aspx ?id = 1038 – jao 2012-03-09 13:58:12

回答

1

如果我理解正確的話,您的服務已運行愉快地使用Windows身份驗證,因此它需要調用應用程序,你的網站也可以使用Windows身份驗證。

當您嘗試添加引用時,VS將使用項目屬性中定義的任何Web服務器在後臺啓動您的站點。你說你正在使用內置的Web服務器(也被稱爲Cassini或Webdev)來啓動你的網站。您需要確保您的網站使用Windows身份驗證。您可以從服務的「項目屬性」中執行此操作(右鍵單擊根文件夾並選擇「屬性」)。在那裏您將看到一個Web選項卡,其中有一個NTLM身份驗證複選框 - 確保已選中。

此外,請確保您使用:

<system.web> 
    <authentication mode="Windows"> 
... 
在你的web.config

但是,如果你想使用IIS本身,我假設你已經安裝了它並知道如何定義一個Web應用程序。根據您正在運行的Windows版本,您可能安裝或未安裝IIS,或者可能無法安裝(使用控制面板中的「程序和功能」)。如果您沒有IIS,則可以從此處安裝IIS Express:http://learn.iis.net/page.aspx/868/iis-express-overview/

安裝IIS並定義應用程序根目錄並將該目錄指向本地源文件夾之後,啓用Windows(NTLM)身份驗證網絡應用/網站。如何實現這一點取決於您正在運行的是哪個版本的IIS,但通常通過單擊身份驗證圖標。您可能需要禁用匿名以及啓用Windows身份驗證,以便所有請求都強制進入Windows身份驗證。對於不支持自動NTLM身份驗證的瀏覽器,我也會打開基本表單身份驗證。

一旦您定義了IIS應用程序,就可以將其用於從Visual Studio而不是內置Web服務器進行調試。您還可以通過選擇「使用本地IIS服務器」並選擇您在上面創建的IIS站點的URL來從項目屬性中執行此操作。或者,VS可以爲您創建IIS網站定義,如果它尚不存在。

上述任何一種方法都應確保當VS啓動站點添加引用時,它將使用身份驗證以及運行時。請注意,您可以手動添加參考,而無需啓動網站。然後,您只需確保您在運行時具有Windows身份驗證,如上所述。

相關問題