0

我正在将MVC应用程序移动到新的服务器。旧服务器是Windows 2003,新服务器是Windows 2012 R2。Windows身份验证,ASP.Net MVC错误

应用程序使用Windows身份验证,然后使用该用户调用SQL Server来检索数据。

的应用仍然在MVC 1.0,使用Visual Studio 2008

应用程序内置在Visual Studio本地运行正常。然后我将应用程序部署到IIS7.5。 现在,如果我使用远程桌面连接到服务器,然后在服务器上运行浏览器,应用程序运行良好。

我遇到的问题是当我从网络上的任何其他机器访问网站。 最初,mvc应用程序加载并显示ok。 但是当我点击任何调用SQL数据库的函数时,我都会看到一个windows登录弹出框。

它看起来像凭证没有被传递到SQL Server。

我不知道为什么我会得到这个登录框,就像我说的,当我在visual studio中本地运行或本地直接在服务器上运行时,它不会发生。

即使出现此登录框,并且输入了我的登录凭据,登录也会失败。 3次登录尝试后,应用程序池崩溃。

有没有人有任何想法,为什么我得到这个登录框?

谢谢

UPDATE:SQL Server是在另一个没有改变的盒子上。

更新2:我刚刚发现,如果在IIS上的ASP.net模拟设置中设置我的Active Directory用户标识和密码,则应用程序可以在任何计算机上正常工作。

这是否意味着Windows身份验证没有获取我的AD用户标识并将其传递给SQL Server?

+0

听起来像你需要启用和使用Sql Server混合模式验证:Windows Authnetication + Sql ... – Daniel 2014-12-02 20:50:53

+0

数据库没有改变,它在另一个盒子上。只有asp.net应用程序移动到一个新的框。就像我说的那样,如果我在服务器上本地运行它,应用程序运行良好。 – Bill 2014-12-03 15:32:43

回答

0

您正在收到这种奇怪的行为,因为在您的服务器上运行Application Pool的用户没有足够的权限。

该用户需要具有NTFS权限。

如果将用户更改为Local System它肯定会起作用。但是这可能不会被您的安全规则所允许,因此您应该首先与IT经理核实。

+0

没有这样做有什么区别,就像我说的MVC应用程序工作正常,除非我调用一个页面调用数据库,它只发生在我不在本地运行。 – Bill 2014-12-03 15:37:14

+0

网站如何连接到数据库? Windows验证? – 2014-12-03 15:42:12

+0

见上面的更新2 – Bill 2014-12-03 16:26:09