仮想アプリケーションまたは仮想アプリケーションを使用して、同じアプリケーションコード(aspxページなど)を共有する2つのWebサイトを設定できますが、 .configファイル?サイトとコードは、同じIIS上で実行されている同じサーバー上に存在します。私はする必要がありますIIS 6.アプリケーションファイルを共有しているが異なるweb.configを持つ2つのASP.NETサイト
答えて
短い答えは、コードを1か所に保存したい場合はnoです。おそらく最良の解決策は、サイトを決定するもの(おそらくホストヘッダー?)に基づいてアプリケーションにカスタム設定ファイルをロードさせることです。
ConfigurationManager.OpenExeConfigurationのようなものが役に立ちます。
私は、1つのファイルにすべてがある設定規約を考えて、特定の種類の特定のプレフィックスを使用してGetSectionを使用して、必要な設定を取得することをお勧めします。
ええ、私はこれが他のやり方でできることを知っています。私はちょうど私が既存のコードを変更することなくそれを行うことができることを望んでいた。 –
短い答えは "はい"ですが、仮想ディレクトリは使用しませんが、NTFSのハードリンクは次のとおりです。https://stackoverflow.com/questions/45889661/several-asp-net-sites-that-are-sharing-application-files -but-using-different-th –
を使用しています
は、仮想アプリケーション内のweb.configファイルが使用されます。レイアウトが階層的である場合、web.configの継承を調べる必要があるかもしれません。
私は、それぞれにweb.configが必要になるのでアプリケーションコードの2つの物理的なコピーが必要であることを付け加えてください。 – Pharabus
これは単に不可能です。
なぜですか?
これは、アプリケーションが物理的に存在する物理フォルダからデフォルト設定ファイルを読み込むためです。仮想ディレクトリはweb.configとは関係ありません。これは、Webサーバー(IIS)がWebサイトのルートとして特定の物理ディレクトリにマップするために使用されます。
ありがとうございました。
-1 'の仮想ディレクトリはweb.configとは関係ありません。参照してください... http://msdn.microsoft.com/en-us/library/ms178685(v=vs.100).aspx#configuration_inheritance、 'サーバーが特定のWebリソースの要求を受信すると、ASP.NET要求されたURLの仮想ディレクトリパスにあるすべての構成ファイルを使用して、そのリソースの構成設定を階層的に計算します。 –
アプリケーションA、アプリケーションB、アプリケーションCなどがありますが、web.configファイルで定義されているいくつかの設定プロパティによって異なる点を除き、まったく同じです。
もちろんこれは可能です。最も簡単な方法は、プロジェクトをWebアプリケーションとしてセットアップし、コンパイルしてから、そのDLLをアプリケーション間で共有することです。あなたはGACを使いたいですか?
すべてのロジックが存在する共有ディレクトリを指し示すIISの個々のサイトを設定できます(またはそれぞれの仮想ディレクトリを使用します)が、app_codeフォルダを共有することはできません。
EDIT
RichardODは、上記最良の答えを持っている、と私は前に似た何かを実装しました。基本的には、web.configのリファレンスとなるカスタム設定ファイルを設定します(変更を加えるとアプリが再起動されないようにします)。このファイルはホスト名で読み込まれ、ホストごとに固有のプロパティが含まれています。
私はホストヘッダーをIISに追加し、カスタム設定ファイルにそのホストのエントリを追加します。完了しました。
ウェブサイトの各インスタンスごとに異なるDB接続文字列を使用するために、これは1年前にこれをやったことは間違いありません。私の推測では、のみにはインスタンス固有の設定を含むweb.configが含まれていて、これらの仮想ディレクトリのそれぞれには、ソースコードを参照するアプリケーションが含まれていたweb.config)。
したがって、私が正しく覚えていれば、特定のWebサイトでは、web.configのみを含む仮想ディレクトリを作成することができました。これの値は、その仮想ディレクトリのサブアプリケーションによって継承されます。
このトリックは動作することを確認してください – Pashec
クール。どのweb.configが優先されるのか気づきましたか?内側か外側か?私はそれが外側であることを思い起こさせるようです。 –
- 1. 2つの異なるWordPress Webサイトで同じデータを共有
- 2. 異なるWeb.configを持つ1つのwebroleのサイトの複数のインスタンス
- 3. 2つの異なるソフトウェアモジュール間で変数を共有する
- 4. 2つの異なるタイプのデータベース間で1つのテーブルを共有する
- 5. 異なるスキーマを持つXMLを共有タイプにデシリアライズ
- 6. 異なるサーバーにある2つのアプリケーションインスタンス間の共有データベース
- 7. DBを共有する2つのサイトのキャッシングスキーム
- 8. Apache/Tomcat/Railo:同じドメインで2つの異なるポートを持つ2つのサイトを設定する
- 9. 2つの異なるベクトルに動的共有メモリ割り当てを使用
- 10. 2つのプロセスが同じヒープを共有しています
- 11. 共有ユーザーIDを持つ2つのアプリケーション
- 12. ZF 2つの異なるapplication_envを持つ1つのプロジェクト
- 13. 2つの異なるタッチイベントを持つ1つのボタン
- 14. 2つの異なるDotNetNukeインストールの間でユーザーを共有する
- 15. ASP.NET Response.Write 2つの異なるページ
- 16. COMPSを持つ共有ディスク
- 17. 共有メモリを持つクラウド
- 18. バリエーションを持つ共有ポイント発行サイトでのブレッドクラムのカスタマイズ
- 19. 同じタイプのjavaソースファイルを持つEclipseの異なる出力フォルダを持つ2つの異なるソースフォルダ
- 20. 同じコードが2つの異なるアプリで2つの異なることをしていますか?
- 21. Android:2つの異なるビューを持つ効率的なアダプタ
- 22. 90%のデータとコードを共有する2つのdjangoサイトを作成する
- 23. Windowsインストーラ:2つの異なるインストーラで同じコンポーネントを共有できます
- 24. 2つの異なるフィルタを持つデバイスを聴くWinpcap
- 25. SQLは、共通IDを持つ2つのテーブルを比較したが、表2のIDが2つの異なる列に
- 26. Asp.net MVCは、異なるパラメータを持つ2つのアクションを区別できないのはなぜですか?
- 27. SELECT 2フィールドが同じデータを持つ異なるキーを持つ行?
- 28. jqueryの同じクラスを持つ2つの異なるトリガ
- 29. 同じ名前の2つの異なるDLLを持つプロジェクト
- 30. 異なるセキュリティグループを持つ2つのノードのRiakクラスタ
2つの.configファイルの違いは何ですか?おそらく、認証と認可に関連するだけでしょうか?通常、インターネットサイトとそれを管理するイントラネットサイト間の共有など、これらのような問題を処理する他の方法を見つけることが可能です。 –
唯一の違いはappSettingsです。私はコードを変更せずにこれを行うことができるかどうかを知りたいだけのことに興味がありました。 –
@ Jakob-あなたはアプリの設定に何らかの種類のアプリ固有のキーを付けることでそれを行うことができますが、それでもコードを変更する必要があります。 – RichardOD