我已经使用 WebApi 构建了一个 RESTful Web 服务。我正在使用实体框架连接到数据库。本地工作正常。当我将站点上传到主机提供商并发出请求时,我会返回 401 结果以及以下标头:
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 question 中的一些建议,但没有任何效果。 禁用 WebAPI 的 Windows 身份验证
请问有什么建议吗?我已经为此苦苦挣扎了 3 天,实现了 HttpModules,自定义属性,阅读了有关处理程序的信息。我现在真的不知所措。