Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows身份验证,ASP.Net MVC错误_Asp.net_Sql Server_Asp.net Mvc_Authentication_Windows Server 2008 - Fatal编程技术网

Windows身份验证,ASP.Net MVC错误

Windows身份验证,ASP.Net MVC错误,asp.net,sql-server,asp.net-mvc,authentication,windows-server-2008,Asp.net,Sql Server,Asp.net Mvc,Authentication,Windows Server 2008,我正在将一个MVC应用程序移动到一个新服务器上。旧服务器是Windows 2003,新服务器是Windows 2012 R2 应用程序使用windows身份验证,然后使用该用户调用SQL Server检索数据 该应用程序仍在使用VisualStudio2008构建的MVC1.0上 该应用程序在VisualStudio中本地运行良好。然后我将应用程序部署到IIS7.5。 现在,如果我使用远程桌面连接到服务器,然后在服务器上运行浏览器,应用程序运行正常 我遇到的问题是当我从网络上的任何其他机器访问网

我正在将一个MVC应用程序移动到一个新服务器上。旧服务器是Windows 2003,新服务器是Windows 2012 R2

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

该应用程序仍在使用VisualStudio2008构建的MVC1.0上

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

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

看起来没有将凭据传递到sql server

我不知道为什么会出现这个登录框,就像我说的,当我在VisualStudio中本地运行或直接在服务器上本地运行时,不会出现这种情况

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

有人知道我为什么会得到这个登录框吗

谢谢

更新:SQL Server位于另一个未更改的框中

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


这是否意味着Windows Auth没有获取我的AD用户ID并将其传递给SQL Server

您会遇到这种奇怪的行为,因为在您的服务器上运行
应用程序池的用户没有足够的权限

该用户需要具有
NTFS
权限


如果您将用户更改为
本地系统
,它肯定会工作。但是,您的安全规则可能不允许这样做,因此您应该首先与IT经理联系。

听起来您需要启用并使用Sql Server混合模式身份验证:Windows AuthNetAction+Sql…数据库没有更改,它位于另一个框中。只有asp.net应用程序移动到新框中。就像我说的,如果我在服务器上本地运行应用程序,它可以正常运行。没有什么区别,就像我说的MVC应用程序可以正常运行,除了当我调用调用数据库的页面时,它只在我不在本地运行时发生。网站如何连接到数据库?windows身份验证?所以问题是我最初怀疑的。运行应用程序池的用户没有足够的权限。