.Net 2.0 Web服务中的SSPI连接

时间:2009-03-10 13:32:15

标签: .net sql-server login web-config sspi

我正在尝试测试我在C#中创建的.Net 2.0 Web服务。我们的一台服务器在Windows 2000上,目前只支持.Net 2.0。我可以在我的机器本地测试它并且它工作正常但是当我将它移动到目标服务器进行生产时会产生错误。

我希望它使用Windows身份验证,并在web.config

中进行定义

我收到的错误如下:

  

System.Data.SqlClient.SqlException:   用户''登录失败。用户是   与受信任的SQL无关   服务器连接。

当我尝试在目标服务器上测试此Web服务(在该服务器上本地运行)时会发生这种情况。

如何将活动目录用户名与运行Web服务的服务器/位置相关联(我认为这是我需要做的?)

此服务器当前可以通过经典ASP和ColdFusion连接到MSSQL 2005。

2 个答案:

答案 0 :(得分:2)

如果您在IIS中托管,则需要设置运行Web应用程序的应用程序池的标识。请注意,您选择的用户需要访问登录即服务以及其他一些内容。如果用户的配置稍有不当,您可能会得到“500 Server Unavailable”,因此请谨慎行事。另请注意,您需要完全回收应用程序池以重试!

(编辑) - 找到我的记事本;-p

  • 将帐户添加到“作为服务登录”策略组(本地安全策略(本地安全设置) - >用户权限分配)
  • 将帐户添加到“IIS_WPG”用户组(计算机管理 - >本地用户和组)
  • 向文件结构授予帐户“读取和执行”,“列出文件夹内容”和“读取”权限(资源管理器 - >属性)
  • 创建新的应用程序池,或更新现有池的用户帐户(Internet信息服务 - >应用程序池)
  • 设置站点/应用程序的应用程序池(Internet信息服务 - >网站)

答案 1 :(得分:1)

我相信您在托管该网站的应用程序池中为网站(或服务)设置了用户。

打开compmgmt.msc,然后转到服务和应用程序 - > Internet信息服务(IIS)

您可以在此处添加具有标识的新应用池。然后,您可以通过右键单击您的网站将您的Web服务站点与应用程序池关联 - >主目录,然后选择底部的应用程序池。

我可能会忘记其他一些事情,但我认为应该这样做。