2017-03-16 103 views
2

在Visual Studio(2015版社區)中構建ASP.Net項目時,網站配置文件(,例如,Web.Config)由構建處理到編譯後的.dll文件旁邊的bin文件夾中,並重命名爲{assembly}.dll.config防止ASP.Net項目將{assembly} .dll.config複製到bin文件夾

發生這樣不顧屬性窗口的Web.config文件被設置以下參數:

Web.config Properties Window

對於我們的解決方案,這是文件的第二個副本是沒有必要的,也沒用過在{assembly}.dll.config表格中找到輸出bin文件夾。

我想知道什麼是必要的,以防止Visual Studio複製配置文件並將其放置在bin輸出目錄中。在地方(Web.config在根目錄中,並在{assembly}.dll.config輸出目錄)

具有敏感的配置設置是從安全角度來看存在問題。

+0

如果你的'Web.config'不在bin目錄下,你希望你的程序運行得如何?你是否期望你的編譯應用程序和IIS只是神奇地知道你的本地開發文件夾中該文件的值? – caesay

+1

在一個需要考慮安全問題的設置中,根本不應該在你的'Web.config'中存在生產/敏感數據。這意味着對代碼的任何其他貢獻也可以訪問生產數據庫連接字符串等,這是不必要或不可取的。開發目錄(和bin)中的'Web.config'應該指向測試數據和測試數據庫。將應用程序部署到生產服務器時,應將這些值更新爲敏感生產值。 – caesay

+1

@caesey我期待消除多餘的{assembly} .dll.config文件,而不是Web。配置文件,實際使用。對不起,如果這是令人困惑。 Web.config確實是必需的。單獨的{assembly} .dll.config不是。 – Lemonseed

回答

2
  • 部署您的應用程序,Publish您的應用程序。這樣,只有必要的程序集/文件被部署。您的已發佈/bin文件夾將反映此(不會有您提到的「重複」)。

  • 安全性:這取決於你是什麼後,您可以

    • 單獨的「敏感」從web.confg信息到他們自己的文件。這通常是隻有用於保持這樣從在線倉庫(TFSGit等) - 從源控制

      例如由不含文件

      <appSettings file="AllMySecrets.config"> 
      .... 
      
    • 使用encryption

H個。

+0

雖然使用發佈對我們來說不是一個理想的解決方案,但將配置設置分隔爲不同的文件是一種可行的解決方案。注意,這可以在不能以某種方式禁用'{assembly} .dll.config'重複行爲的情況下工作。 – Lemonseed

相關問題