2010-04-13 107 views
8

我目前正在寫一個網站在ASP.NET MVC,和我的數據庫(它沒有任何數據,但它只有正確的表)使用我已經安裝在開發機器上的SQL Server 2008。我通過使用服務器資源管理器連接到我的應用程序的數據庫,然後是LINQ to SQL映射。使用.MDF SQL Server數據庫與ASP.NET對比使用SQL Server

一旦我完成了網站的開發,我將把它移到我的託管服務,這是一個虛擬主機方案。我很擔心在生產服務器上使用當前在我的開發機器上工作的SQL Server設置是否很難,因爲我必須通過主機控制面板導入所有數據庫表。

我注意到可以從Visual Studio中創建一個SQL Server數據庫。然後它被存儲在App_Data目錄中。

我的問題有以下幾點:

  • 是否有意義移動我SQL Server數據庫從SQL服務器,進入App_Data目錄作爲.mdf文件?
  • 如果是這樣,如何我可以移動它?我相信這被稱爲Detach命令,不是嗎?
  • 是否有任何性能/安全問題這可能發生在.mdf這樣的文件?
  • 我的預期設置工作正常,一個典型的虛擬主機方案?我希望.mdf數據庫不會計入可以用我的計劃創建的有限數量的SQL Server數據庫。

我希望這個問題不太寬泛。提前致謝!

注意:我剛剛開始使用ASP.NET MVC和所有這些,所以我可能完全誤解了這應該如何工作。

回答

9

App_Data MDF是一個SQL Server數據庫,它將即時添加到SQL Server實例中。訪問MDF的唯一方法是連接到SQL Server。 Visual Studio隱藏幕後發生的事情,但您仍在使用SQL Server實例。該即時附件的MDF僅適用於SQL Express版本。在SQL Express 2005中,您最終會得到一個用戶實例,請參閱Connecting to SQL Server Express User Instances (ADO.NET)。使用SQL Express 2008,您可以控制您想要的用戶實例或附加到服務實例。

您必須與您的託管服務提供商覈實,以確認他們是否將此數據庫計爲數據庫中的。您必須記住,從資源使用的角度來看,通過連接字符串(這是使用App_Data MDF部署選項時發生的情況)附加數據庫與其他任何打開和運行數據庫的方式一樣昂貴,所以聽到他們允許的話,我會非常驚訝,並且不會計入計劃允許的數據庫數量。

1

不要爲你的db使用App_Data。這對於一些快速的「如何」或原型來說很好,但對生產服務器來說並不好。在維護過程中會造成很多麻煩。我已經使用過一次,永遠不會再有...

是的,性能。因爲它總是需要附加數據庫。當你每天有幾個訪問者的小網站時,這不是一個大問題。

如果問您的託管服務是否值得,最好問問您的託管服務。

5

所有的SQL Server數據庫都是.mdf文件。 .mdf文件存儲在這裏:* C:\ Program Files \ Microsoft SQL Server \ MSSQL \ Data *(默認位置)。

你是正確的,你將不得不從服務器分離SQL數據庫移動到您的App_Data文件夾的數據庫。您可以通過右鍵單擊SSMS中的數據庫來完成此操作。

數據庫移動到App_Data文件夾的優點是,如果:

  1. 在生產中使用,當你連接到它,你將數據庫附加到SQL Server時動態數據庫將被保存在那裏。
  2. 您想要將網站與App_Data文件夾中的mdf一起發佈到您的服務器(這與第一個原因一起使用)。
  3. 保持你們所有的項目文件在一個位置。易於移動。易於備份。

在您將要通過自定義控制面板上傳數據庫的場景中,我沒有看到將數據庫移動到App_Data文件夾的優點。當您發佈網站時,您可以簡單地分離數據庫,獲取mdf文件並上傳(您的控制面板可以使用其他方式導入數據庫,例如SQL腳本...)。

要回答你的問題直接...

是否有意義動我的SQL Server數據庫出來的SQL Server,進入 的App_Data目錄爲密度纖維板 文件?

我不這麼認爲。

如果是這樣,我該如何移動它?

分離。您可以通過右鍵單擊SSMS中的數據庫來完成此操作。

是否有任何性能/安全性可以與.mdf文件 這樣發生 問題?

我不確定安全差異,但正如前面提到的那樣,當數據庫連接到SQL Server時性能可能會更好。

典型的虛擬主機方案 我的預期設置是否正常工作?

你將不得不檢查他們是否計數/允許sql數據庫動態連接。

我希望這會有所幫助。我不是專家。

0

老實說,這可能不會直接回答你的問題,但我發現你在主機上(而不是本地)設置它的方式是將你的數據庫移動/導入你的託管公司,然後誰會給你一個連接字符串你的主機/分貝。一旦你「上線」(或測試,通過上傳你的網站到主機) - 連接字符串更改爲您的主機提供的,在你的web.config。這可能過於簡單化了,但一直爲我工作。