我有一个需要连接到 Analysis Services 数据库的 ASP.NET 应用程序。所有组件都在同一台机器上:
- Web应用程序
- IIS
- 视觉工作室 2008
- SQL Server 2008
我的域帐户 (DOMAINNAME\MyWindowsUsername) 是 SQL Server 上的管理员,也是本地计算机上的“管理员”组中的管理员。
Web 应用程序使用 Windows 身份验证和身份 impersonate="true"。
我的 IIS Windows 身份验证设置(我也尝试过其他组合但没有成功......):
- 扩展保护:关闭
- 启用内核模式身份验证:true
- 启用提供程序:NTLM
当我在 ASP.NET 开发服务器(从 Visual Studio 部署)上使用 Web 应用程序时,一切正常。我的域帐户和相应的数据库角色被正确识别,并且安全性按照数据库角色中的定义工作。
但是,当我将相同的 Web 应用程序(代码没有任何更改)部署到 IIS 时,我收到错误(在浏览器中):
在传输层中遇到错误。对等方过早地关闭了连接。
在 SQL Profiler 中(对于 IIS 连接失败的情况)我只得到这两个事件:
审核登录 MyWindowsUsername DOMAINNAME
审核注销 MyWindowsUsername DOMAINNAME
似乎 Analysis Services 可以识别模拟帐户,但连接仍然中断。
我注意到 ASP.NET 开发服务器在 DOMAINNAME\MyWindowsUsername 下运行,而 IIS 在 LocalSystem 下(默认设置)。我尝试使用这些帐户,将各种系统/网络帐户添加为 Analyis Services 管理员(只是为了了解这背后的逻辑),但也没有成功(总是同样的错误)。