Visual Studio调试访问外部数据库

时间:2014-11-27 23:40:33

标签: asp.net-web-api visual-studio-2013 sql-server-2012 iis-8.5

我对Web API的Visual Studio 2013调试模拟器如何工作有疑问。

我在Visual Studio 2013中构建了一个Web API项目来访问外部服务器上的数据库。该代码是使用VS2013的ASP.NET Web应用程序项目模板为Web API应用程序构建的。构建完成后,运行调试打开了localhost端口56618的浏览器窗口,允许Fiddler访问以测试Http请求。

我完成项目后,将其发布到使用Web Deploy到IIS的网站上。但是,当页面打开时(现在在localhost:9812),http请求将引发内部服务器错误500.

仔细阅读IIS FailedReqLogFiles,我注意到它失败的原因是数据库服务器拒绝访问'< Domain> \< machine-name> $'。

我添加了'< Domain> \< machine-name> $'在具有读写权限的sql实例上作为有效登录(Windows身份验证,包括连接字符串" Integrated Security = true"),问题已解决。

问题是,为什么Visual Studio调试模拟器没有相同的问题?

1 个答案:

答案 0 :(得分:1)

因为模拟器在您自己的帐户的上下文中运行网站(例如<Domain>\You)。您的帐户有权访问数据库,因此没有问题。

当您将其发布到IIS时,它开始在另一个帐户(<Domain>\Machine-Name - 的上下文中运行 - 但是还有其他变体,具体取决于IIS的配置方式和IIS的版本)可以访问您的数据库。