2012-07-06 100 views
1

我有一个WCF服务访问SQL数据库来获取数据。我想将此服务部署到IIS上。但是,当我这样做时,我的服务无法访问数据库。 这是我的服务如何访问DB托管WCF服务,访问SQL数据库到IIS

SqlConnection thisConnection = new SqlConnection(@"user id=SAIESH\Saiesh Natarajan;" + 
            "password=;server=SAIESH\\SQLEXPRESS;" + 
            "Trusted_Connection=yes;" + 
            "database=master; " + 
            "connection timeout=30"); 

我需要知道我应该做的是能够从托管在IIS

我的WCF服务访问此DB
+0

你得到的错误是什么? – 2012-07-06 07:28:58

+0

与Web服务器相关的数据库在哪里?有没有防火墙可能?是您的sqlexpress设置用于远程连接? – BugFinder 2012-07-06 07:30:30

+3

那么,对于一个 - **要么**你指定一个UserId /密码,**或**你定义一个'Trusted_Connection'(或'集成安全性)来使用当前的凭据 - 但你**不应该**在同一个连接字符串中定义这两个字符 – 2012-07-06 07:31:14

回答

1

IIS下您的服务通常会被执行在网络服务帐户下。在您的连接字符串中,您使用trusted_connection=yes。因此,您需要授予访问NETWORK SERVICE帐户的权限。但更好的解决方案是更改身份验证方案并使用USERNAME/PASSWORD连接到SQL服务器。
其实这里是类似的问题WCF Impersonation and SQL trusted connections?

+0

谢谢你paramosh。我添加了我自己的域帐户,现在它可以工作。 – Saiesh 2012-07-06 08:30:35