簡體   English   中英

在 web.config 、IIS 默認網站和 IIS 應用程序中指定時選擇哪個連接字符串?

[英]Which connection string is chosen when it is specified in web.config , in IIS Default web site and in IIS application?

有一個選項可以在多個位置指定連接字符串,例如在 web.config 中,在 IIS(默認網站和應用程序本身)中,如果在所有這三個位置都指定了連接字符串,則應用程序選擇哪個連接字符串?

我對使用 IIS 8.5 運行的應用程序中的連接字符串進行了一些測試。

  • 看起來只有兩個地方可以添加連接字符串:本地 web.config 和全局 web.config。 IIS 提供了一個接口來更新這些文件。
  • 不允許在 web.config 文件中或跨本地和全局 web.config 觸發器中出現重復鍵。 所以不必擔心選擇哪個連接。 如果您的代碼需要一個鍵,它就會找到那個值。 如果有零個或多個具有相同鍵的連接字符串,則會出現錯誤。 :)

本地與全局 Web.Config - 每個應用程序都有本地 web.config,每個服務器都有一個全局 web.config。 全局 web.config 位於%systemroot%\\Microsoft.NET\\Framework64\\v4.0.30319\\CONFIG對我來說。

IIS接口

  • IIS 顯示了一個“連接字符串”按鈕(按鈕和對話框如下圖所示),它會調出一個菜單。
  • 如果我更新 web.config 文件中的連接,對話框會更新。 如果我從對話框更新,則 web.config 更新。 所以看起來它們保持同步。
  • 來自本地 web.config 的連接將“條目類型”顯示為本地。 全局 web.configs 連接顯示為繼承
  • 我還嘗試在 web.configs 和 IIS 中設置相同的鍵(例如 LocalSqlServer),但出現錯誤。

在此處輸入圖片說明

在此處輸入圖片說明

沒有順序,連接字符串中有name屬性。

<connectionStrings>
  <add name="RealDB" providerName="System.Data.SqlClient" connectionString="" />
  <add name="NorthWind" providerName="System.Data.SqlClient" connectionString="" />
</connectionStrings>

在你想使用哪個數據庫的代碼中,你可以從 web.config 獲取它,你可以發送它或在你的數據訪問層上使用它。

var realConnection = ConfigurationManager.ConnectionStrings["RealDB"].ConnectionString;
var NortWindConnection = ConfigurationManager.ConnectionStrings["NorthWind"].ConnectionString;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM