iT邦幫忙

0

ASP.NET 發行網站 IIS架站 連接資料庫發生錯誤 【於資料庫 'master' 中,CREATE DATABASE 的權限遭拒】

遇到了這個問題 我是在server 2016 的環境下

windows 10 發行後 直接架在IIS可以正常存取 換成server2016 就不行

得知要改連接字串 可是變成底下圖片的錯誤 找不出答案 尋求幫助

連接字串

<add name="dbShoppingEntities" connectionString="metadata=res://*/Models.dbShoppingModel.csdl|res://*/Models.dbShoppingModel.ssdl|res://*/Models.dbShoppingModel.msl;provider=System.Data.SqlClient;provider connection string="data source=Myserver\SQLEXPRESS;attachdbfilename=|DataDirectory|\dbShopping.mdf;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />

https://ithelp.ithome.com.tw/upload/images/20211117/2014049134f2sXFFdV.png

2
海綿寶寶
iT邦大神 1 級 ‧ 2021-11-17 14:26:48

錯誤訊息是相同名稱的資料庫已存在

檢查看看是否已經有相同名稱的資料庫

看更多先前的回應...收起先前的回應...

現在問題變成這樣

這是我的連接字串↓

<add connectionString="Server=myServer\SQLEXPRESS;Database=C:\USERS\MAN\DESKTOP\TEST1116\APP_DATA\DBSHOPPING.MDF;Integrated Security=true" name="dbShoppingEntities" providerName="System.Data.EntityClient" />

https://ithelp.ithome.com.tw/upload/images/20211117/20140491P0usf9koS7.png

是我的連接字串有誤嗎? 如果有誤,正確寫法是什麼呢?

froce iT邦大師 1 級 ‧ 2021-11-17 16:36:14 檢舉

你連的是local db吧?
那怎麼會有server?

我是在 server 2016 架設的, DB檔案是放在 D:\DB\DBSHOPPING.MDF 這樣子連接字串要怎麼寫呢?

因為我有成功讓別人可以連到我IIS設定的網站,可是連到要讀取資料庫的頁面就會這樣錯誤

所以我在想是不是連接字串方面有問題

Homura iT邦高手 1 級 ‧ 2021-11-17 16:46:52 檢舉

rong105100313
應該是Data Source才對吧...
而且連接對象要改自己的sql server名稱

https://ithelp.ithome.com.tw/upload/images/20211117/20140491aVGCelW0FL.png

用 Data Source 又變回 https://d1dwq032kyr03c.cloudfront.net/upload/images/20211117/2014049134f2sXFFdV.png

Homura iT邦高手 1 級 ‧ 2021-11-17 17:27:50 檢舉

你資料庫跟海綿寶寶說的一樣已經建立了...
你的entiti framwork是不是沒把建立資料庫的指令加入判斷
是否已經建立...

0
horace_work
iT邦新手 3 級 ‧ 2021-11-17 17:11:36

試試吧 正常用visual studio 連線工具產生比較準確

<add name="dbShoppingEntities" connectionString="metadata=res://*/Models.dbShoppingModel.csdl|res://*/Models.dbShoppingModel.ssdl|res://*/Models.dbShoppingModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=Myserver\SQLEXPRESS;AttachDbFilename=D:\DB\DBSHOPPING.MDF;Integrated Security=True;Connect Timeout=30;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />

現在變成這樣

https://ithelp.ithome.com.tw/upload/images/20211117/201404911zRPvbMMk3.png

我覺得錯誤的路徑很詭異...C?
還有請確認一下IIS有使用該路徑的讀寫權限

0
stockoko
iT邦新手 5 級 ‧ 2021-11-18 16:28:24

安全性=>登入 找到 NT AUTHORITY\SYSTEM 按右鍵,把它的伺服器角色中的dbCreator勾選
試看看
我大概9月底有碰到很類似的問題,所以就用類似的解法告訴你,但不確定是否能解決。

我要發表回答

立即登入回答