2

我正在使用VS2010 Beta 2創建IIS託管的WCF服務。我添加了一個SQL Server數據庫文件作爲簡單的數據存儲,然後生成一些Linq to SQL類與之交互。附加到sql server的問題使用網絡服務帳戶表達db文件

Linq to SQL試圖連接到數據庫時發生問題。我在下面得到以下錯誤:

CREATE DATABASE權限在數據庫'master'中被拒絕。 嘗試附加文件c:\ Source \ SampleApp \ App_Data \ GameData.mdf的自動命名數據庫失敗。具有相同名稱的數據庫存在,或指定的文件無法打開,或位於UNC共享上。

爲了解決以前的問題,我已經改變web.config中不使用用戶實例:

<add name="GameDataConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\GameData.mdf;Integrated Security=True;User Instance=False" 
    providerName="System.Data.SqlClient" /> 

我的第一反應是,應用程序池的用戶帳戶(網絡服務)是無法打開該文件,所以我已授予完全控制數據庫文件和日誌文件,但這並沒有幫助。

有趣的是,如果我改變應用程序池在本地系統下運行一切正常。有什麼我必須授予NETWORK SERVICE訪問權限?

回答

2

Yopu必須使用Sql Management Studio Express並添加網絡服務帳戶作爲登錄。然後在指定的數據庫上爲其分配DBO權限,或者直接爲其指定sysadmin角色。請注意,當您安裝SQL Server 2005任何版本時,您都有初始選項來設置服務的登錄帳戶。如果您指定網絡服務。默認情況下,網絡服務帳戶將被授予sysadmin角色。

希望如果您沒有使用<identity impersonate="true"/>這有助於

+0

完成了一個正確的遊戲獲取SQL Management Studio,但是當我這樣做的時候,它非常直接地爲網絡服務提供登錄到服務器和對該數據庫/文件的權限。感謝您的幫助,它提供了一種享受。 – Max 2010-01-27 10:50:31

1

,您的應用程序池的用戶沒有足夠的訪問數據庫。

您也可以創建數據庫用戶(SQL身份驗證)並將其憑證(用戶名/密碼)修復到您的連接字符串中。這就是我通常所做的。

+0

儘管我認爲這可能會起作用,但我想堅持使用網絡服務而不是使用模擬運行。謝謝 – Max 2010-01-27 10:52:50

相關問題