从切换到IIS7后,使用ANONYMOUS LOGON连接到SQL

时间:2008-11-14 08:22:24

标签: asp.net iis iis-7

我最近将我的电脑升级到了Vista,这意味着它包含了IIS7。问题是我们正在处理的ASP.NET网站不再起作用了。我收到错误,因为应用程序尝试使用NT AUTHORITY / ANONYMOUS LOGON而不是我的域用户连接到SQL Server,并且匿名未经授权。我已经尝试了几件事,但还没有解决方案: - 安装并启用'IIS Metabase和IIS 6配置兼容性' - 为此网站启用Windows身份验证 - 创建了一个不同的应用程序池,其托管管道模式设置为Classic - 启用IIS6 WMI兼容性和IIS6管理控制台(在这里绝望)

在我们的web.config中,在我们的machine.config中有。我已经尝试将模拟设置为false并在machine.config中输入我的域用户和密码(它曾经是这样的)但是这也没有帮助。

我有什么东西不见了?还有其他人有过类似的问题吗?

4 个答案:

答案 0 :(得分:1)

您的应用程序如何通过SQL Server进行身份验证?它使用SQL还是Windows Auth?我希望您尝试使用Windows Auth。在这种情况下,您的IIS工作进程应该在该Windows用户帐户下运行。如果没有,它至少应该模拟一个对SQL Server具有必要访问权限的Windows用户帐户。如果您启用了模拟,并且使用了正确的Windows用户帐户,并且SQL Server使用Windows身份验证进行身份验证,并且您仍然无法访问SQL Server,则可能会遇到传统的双跃点问题。换句话说,您尝试向IIS进行一次身份验证,然后使用相同的crdentials通过网络对SQL Server进行身份验证(这是您的第二跳),并且出于安全原因,Windows不允许这样做。

答案 1 :(得分:1)

我相信我找到了解决方案。至少它现在正在运作。这就是我所做的:

  • 该网站现在在一个单独的应用程序池中运行,其中Managed Pipeline模式设置为classic,Load userprofile设置为False,Identity设置为custom并使用可以访问数据库的域用户(和密码)。
  • 在网站本身的“授权”下,我将匿名设置为启用,并将ASP.NET模拟设置为禁用。
  • 在网站的web.config中也设置了。

信用到期,this site帮助了我。

答案 2 :(得分:0)

我很遗憾地说我不能再深入研究这个问题了。实际上,它可能与我们连接到SQL Server(Win Auth)的方式有关,因为我们现在已经改变了它。现在我们在连接字符串中连接用户名和密码,然后就解决了。 所以我不能说你是否提供了答案,msvcyc,但我确实对你的解决方案投了赞成票。感谢您的时间和麻烦。

答案 3 :(得分:0)

好吧,如果没有太多麻烦可以享受它所带来的创新,我建议您迁移到集成模式。 :)

http://mvolo.com/blogs/serverside/archive/2007/12/08/IIS-7.0-Breaking-Changes-ASP.NET-2.0-applications-Integrated-mode.aspx