2012-07-06 97 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