我正在通过远程桌面连接访问我的服务器,并在IIS中配置了一个webservice。我能够看到方法,但是当我单击按钮“调用”时,我会得到以下错误:
用户‘SOLDev\Server02 02$’System.Data.SqlClient.SqlException:登录失败。在ShareWare.Web.Service.WebAPI.Reservation.GetInfo()
为什么它以机器名作为用户?我的windows身份验证用户是User1Dev。另外,我在IIS中的目录安全设置如下:
我正在使用.NET框架2.0
发布于 2009-10-21 20:58:14
这是因为web服务以网络服务id的形式运行,而不是以登录用户的身份运行。如果计划使用用户凭据连接到Server,则可能还需要在web配置中使用<identity impersonate="true" />。
发布于 2009-10-21 20:56:21
web服务使用Windows身份验证作为运行服务的主体连接到SQL。在这种情况下,它似乎是BUILTIN\System或BUILTIN\Network服务,两者都在域中作为计算机帐户进行身份验证,即。‘SOLDEV \ Server02 02$’,它对应于域中名为Server02的机器。
如果希望使用自己的登录名在Server上进行身份验证,则IIS必须在称为受限委托的进程中流身份验证信息。见为Kerberos配置受约束的委托(IIS 6.0)。或如何:在ASP.NET 2.0中使用协议转换和受限委托。
如果希望web服务作为自身对Server进行身份验证,则必须将登录权限授予SQL:CREATE LOGIN [SOLDEV\Server02$] FROM WINDOWS上的web服务主体。
https://stackoverflow.com/questions/1603478
复制相似问题