2017-03-16 28 views
2

Visual Studio(バージョン2015コミュニティ)でASP.Netプロジェクトをビルドするときに、Webサイト構成ファイル(Web.Config)コンパイルされた.dllファイルの横のbinフォルダにコピーし、{assembly}.dll.configと名前を変更しました。ASP.Netプロジェクトが{assembly} .dll.configをbinフォルダにコピーしないようにする

Web.configファイルのためのプロパティ]ウィンドウは、次のパラメータで設定されているにもかかわらずこれが発生します。当社のソリューションについては

Web.config Properties Window

は、ファイルのこの第二のコピーは必要なく、また使用出力binフォルダにある{assembly}.dll.configフォームにあります。

Visual Studioが構成ファイルのコピーを作成してbin出力ディレクトリに配置しないようにするために必要なことを知りたいと思います。 場所(出力ディレクトリのルートディレクトリにWeb.config、及び{assembly}.dll.config)で

有する敏感構成設定は、セキュリティの観点から問題があります。

+0

あなたの 'Web.config'がbinディレクトリにない場合、あなたのプログラムはどのように動作すると思いますか?コンパイルされたアプリケーションとIISが、あなたのローカル開発フォルダ内のそのファイルの値を魔法のように知っていることを期待していますか? – caesay

+1

セキュリティが懸念される設定では、 'Web.config'にプロダクション/機密データを置いてはいけません。つまり、コードへの他の寄与も、必要でない、または望ましくない本番データベース接続文字列などにアクセスすることを意味します。開発ディレクトリ(とbin)の 'Web.config'は、テストデータとテストデータベースを指すべきです。プロダクションサーバにアプリケーションをデプロイするときは、これらの値を機密生産値に更新する必要があります。 – caesay

+1

@caesey Webではなく、冗長な{assembly} .dll.configファイルを削除することを検討しています。実際に使用されるconfigファイルです。ごめんなさい。 Web.configが本当に必要です。別の{assembly} .dll.configファイルはありません。 – Lemonseed

答えて

2
  • のアプリ、Publishアプリケーションを配備。このようにして、必要なアセンブリ/ファイルのみがデプロイされます。 /binフォルダーにはこれが反映されます(あなたが言及する「重複」はありません)。

  • セキュリティ:あなたは後にしているものに応じて、あなた自身のファイルにweb.confgから

    • 別の「機密」の情報ことができます。 によってファイルを除くソースコントロールにあるから

      例えば - これは通常のみ(等TFSGit)オンラインリポジトリから、このような維持するためのものです

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

第H。

+0

パブリッシュを使用するのはあまり理想的ではありませんが、構成設定を別のファイルに分割することは実行可能なソリューションです。 Upvotingは、 '{assembly} .dll.config'の複製の振る舞いをどうにかして無効にすることができないというシナリオでうまくいくことを考えています。 – Lemonseed

関連する問題