我正在使用WCF服务(使用Fluent NH实施),它作为Windows服务托管。具有集成安全性的WCF Nhibernate服务= True错误
我正在使用控制台应用程序来测试调用服务方法。现在
,当我在hibernate.cfg.xml设置连接字符串作为
<property name="connection.connection_string">Server=dev;Initial Catalog=DBTest;Integrated Security=True;</property>
它引发错误: SQLEXCEPTION:用户登录失败
但是,如果我将连接字符串更改为:
<property name="connection.connection_string">Server=dev;Initial Catalog=DBTest;User Id=twr;Password=manager1;</property>
它成功调用服务方法。
虽然所有的WCF服务库,托管Windows服务和控制台应用程序坐在我唯一的本地机器上,
谁能帮我理解为什么它不具有集成安全=真正的工作?
谢谢!
在您的Windows服务托管您的WCF运行在什么帐户下?这是试图连接到SQL Server的用户 - 该用户可能不被允许这样做。 – 2009-10-29 17:26:20
谢谢你的回复。那么,我不确定'什么帐户'。但是我对所有其他应用程序的Integrated Security = true一直在做。即使我单元测试的wcf serice方法(不通过Windows服务调用),它适用于集成安全性很好。当我在测试控制台应用程序中通过Windows服务调用它时,才会出现此错误。 – iniki 2009-10-29 17:31:17
是的,当然 - 如果您在Windows服务之外运行WCF服务,它将在您自己的用户下运行 - 并且我假设您拥有必要的权限和所有权限。但是当你在Windows服务中运行某些东西时,你必须在Windows服务上定义哪个服务器将运行在哪个帐户上 - 如果该帐户没有足够的权限,如果它没有SQL Server帐户,它将无法登录。 – 2009-10-29 20:22:25