當初開發時為了圖個方便, 所以直接把資料庫檔案(mdf)跟web service 透過 visual studio 部屬到機器內, 然後直接在機器上跑LocalDb, 結果卻出現以下的錯誤訊息
因為執行LocalDb的相關檔案是儲存在使用者資料夾裡面, 如:
C:\Users\Administrator\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\MSSQLLocalDB
而跑在IIS上的web service預設是以 ApplicationPoolIdentity的身分去執行, 所以如果沒有load user profile的話, 就無法得知實際LocalDb instance的路徑
解法很簡單:
Step 1. 在IIS上打開Application pool的頁面
Step 2. 選擇你的application pool
Step 3. 點擊 Advanced Settings
Step 4. 找到Load User Profile並選擇True
Ref: https://blogs.msdn.microsoft.com/sqlexpress/2011/12/08/using-localdb-with-full-iis-part-1-user-profile/
Cannot get a local application data path. Most probably a user profile is not loaded.很明顯地, 這個訊息表示我們必須設定IIS的user profile
If LocalDB is executed under IIS, make sure that profile loading is enabled for the current user.
因為執行LocalDb的相關檔案是儲存在使用者資料夾裡面, 如:
C:\Users\Administrator\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\MSSQLLocalDB
而跑在IIS上的web service預設是以 ApplicationPoolIdentity的身分去執行, 所以如果沒有load user profile的話, 就無法得知實際LocalDb instance的路徑
解法很簡單:
Step 1. 在IIS上打開Application pool的頁面
Step 2. 選擇你的application pool
Step 3. 點擊 Advanced Settings
Step 4. 找到Load User Profile並選擇True
Ref: https://blogs.msdn.microsoft.com/sqlexpress/2011/12/08/using-localdb-with-full-iis-part-1-user-profile/
留言
張貼留言