我已經使用WebApi構建了一個RESTful Web服務。我正在使用實體框架來連接到數據庫。 Localy工作正常。當我上傳的網站主機提供商,並作出要求,我得到一個401的結果,用下面的標題一起:使用EF的WebApi,Windows身份驗證失敗
HTTP/1.1 401 Unauthorized
Cache-Control: no-cache
Pragma: no-cache
Expires: -1
Server: Microsoft-IIS/8.0
X-AspNet-Version: 4.0.30319
WWW-Authenticate: Negotiate
WWW-Authenticate: NTLM
X-Powered-By: ASP.NET
X-Powered-By-Plesk: PleskWin
Date: Thu, 20 Jun 2013 11:28:47 GMT
Content-Length: 0
Proxy-Support: Session-Based-Authentication
第一個奇怪的是,如果不是EF我用的是經典SqlConnection
和SqlCommand
它工作正常。 第二個奇怪的是,如果我運行項目本地和連接字符串我連接到遠程服務器,它也可以!
一個雖然剛剛找到我。難道我的連接字符串是這樣的,使用System.Data.SqlClient
作爲提供者?
<add name="MyContext" connectionString="Data Source=(local);Initial Catalog=MyDB;User Id=user;Password=password;MultipleActiveResultSets=True" providerName="System.Data.SqlClient" />
我在這個SO問題中嘗試了一些建議,但沒有成功。 Disable Windows Authentication for WebAPI
有什麼建議嗎?我一直在爲這3天努力,實施HttpModules,自定義屬性,閱讀處理程序。我現在真的不知所措。
我懷疑這與EF有關。在IIS中啓用日誌記錄並查看此請求的詳細錯誤消息。 –