0

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

在我们的 web.config 中有,在我们的 machine.config 中有 . 我尝试将 impersonate 设置为 false 并在 machine.config 中输入我的域用户和密码(以前是这样的),但这也无济于事。

有什么我想念的吗?有没有其他人有类似的问题?

4

4 回答 4

1

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

于 2008-11-15T05:21:22.967 回答
1

我相信我已经找到了一个/解决方案。至少它现在正在工作。这就是我所做的:

  • 该网站现在在单独的应用程序池中运行,托管管道模式设置为经典,加载用户配置文件设置为 False,身份设置为自定义,并使用有权访问数据库的域用户(和密码)。
  • 在网站本身的“授权”下,我将匿名设置为启用,并将 ASP.NET 模拟设置为禁用。
  • 在网站的 web.config 中也设置了。

应得的信用,这个网站帮助了我。

于 2008-11-20T12:13:57.140 回答
0

很抱歉,我无法进一步调查这个问题。实际上,这可能与我们连接到 SQL Server (Win Auth) 的方式有关,因为我们现在已经改变了它。现在我们用连接字符串中的用户名和密码进行连接,它就解决了。所以我真的不能说你是否提供了答案,msvcyc,但我确实对你的解决方案进行了投票。感谢您的时间和麻烦。

于 2008-11-18T08:13:28.360 回答
0

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

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

于 2008-11-23T11:30:37.197 回答