2010-02-26 57 views
2

我正在啓動一個使用WCF的新項目,以便我可以使用jQuery對服務器進行AJAX調用。過去我曾經有過配置WCF的各種問題,所以我決定做一些新的研究,看看VB中WCF文檔的級別是否有所提高。不幸的是WCF文檔對我來說仍然像雲計算一樣,當它作爲CTP發佈時...使用WebScriptServiceHostFactory的WCF Web服務

但是我重新發現了WebScriptServiceHostFactory並決定嘗試一下。從我從幾個來源收集的信息中,我應該能夠在我的.svc文件中使用WebScriptServiceHostFactory,而不必擔心嘗試通過WCF的ABC(Pun打算)。

我構建了一個連接到SQL Server並通過LinqToSql的方式返回數據集的項目。我包含了WebScriptServiceHostFactory,並且還向web.config添加了

<system.serviceModel> 
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" /> 
</system.serviceModel> 

。但是當我運行它時,我得到了令人恐懼的「此服務的安全設置需要'匿名'身份驗證,但它沒有爲主管此服務的IIS應用程序啓用」錯誤信息,當我第一次開始使用WCF時困擾了我很多。

我重寫了函數只返回一個字符串,而不是連接到數據庫等,只是爲了看看它是否會工作,但我得到了同樣的東西。

所以問題是,除了將工廠添加到.svc文件和前面提到的web服務serviceHostingEnviroment選項,我做錯了什麼?

我試過檢查&取消選中IIS中目錄安全選項卡中的「啓用匿名訪問」。 (我已經選中了集成的Windows和摘要Windows身份驗證)。

一如既往,謝謝!

回答

1

這些文章和博客文章可能有助於讓你開始:

也爲您的IIS託管問題,多米尼克拜爾中寫道Hosting WCF Services in ASP.NET - The Survival Guide

IIS身份驗證設置
另一件事我注意到的是,該WCF需要 啓用匿名身份驗證 了.svc文件在IIS(不管 WCF身份驗證設置)。如果您 拖放.svc文件到使用Windows身份驗證 現有 ASP.NET應用程序,你會看到這個錯誤 消息:

「這項服務 需要安全設置‘匿名’身份驗證,但 它不是爲託管此服務的IIS 應用程序啓用。「

您必須單獨啓用了.svc文件 匿名訪問,使其工作。

因此,無論您也可以按照這種做法,或者你也可以選擇性地自託管的WCF服務,而不是依賴於IIS - 這可能會一次解決一堆問題,並讓您更好地控制您的託管。