簡體   English   中英

虛擬目錄中的Web.config不會覆蓋父網站的Web.config

[英]Web.config in virtual directory is not overriding parent website's Web.config

我有一個網站,其中有一個虛擬目錄,其中還包含一個網站,當我嘗試從虛擬目錄啟動一個頁面時,我收到一個IIS 7.5錯誤,該名稱(來自連接字符串)已經在該集合中。 在我將域用戶添加為應用程序池中的標識之前,這不是問題。 有誰知道為什么會這樣? 我的印象是子級應用程序的web.config默認覆蓋了父級。 而且,這一直有效,直到我添加了自定義標識。

頁面上的錯誤是“分析器錯誤消息:已添加條目'dbname'。”

其中dbname位於兩個連接字符串中(即父目錄和虛擬目錄)。 我無法刪除其中一個連接字符串,因為虛擬目錄僅用於測試目的,但在生產中它作為自己的網站運行。

無論應用程序如何,子web.config都不會覆蓋父級。 所有web.configs都會一直堆疊到主應用程序的根目錄。 為了使子應用程序文件夾能夠使用已在使用的連接字符串密鑰,必須首先刪除它,或者必須清除所有連接字符串。 如果你想讓它成為一個真正獨立的應用程序,那么將它添加到你的連接字符串:

<connectionStrings>
    <clear />
    <your connection string>
<connectionStrings>

如果您只想刪除單個連接字符串,請使用以下命令:

<remove key="yourConnectionStringName" />

@ u84six,

今天這發生在我身上。 我在同一個根網站上有一些網站和網絡服務。 根是默認的iis網站(默認網站),我認為它指向C:\\ Inetpub \\ wwwroot。 它是一個開發環境。

在我讀完這個答案之后 ,我發現我的一個網絡服務是根網站(仍不確定是什么改變了它......也許是從2010年到2012年遷移后的視覺工作室)。 該web服務正在使用沖突中的connectionString。 我將路徑更改回C:\\ Inetpub \\ wwwroot \\,一切都恢復正常。

也許類似的事情發生在你身上。

暫無
暫無

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

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