1

我有一个需要连接到 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 管理员(只是为了了解这背后的逻辑),但也没有成功(总是同样的错误)。

4

1 回答 1

1

您必须使用委托将用户凭据从 Web 浏览器传递到 SSAS,

http://msdn.microsoft.com/en-us/library/ff647404.aspx

ASP.NET 开发服务器仅在您的登录帐户下运行,这可以防止您提前注意到此问题。

于 2011-02-20T06:57:13.493 回答