1

私の共有ホスティングでは、2 つの仮想ディレクトリしか作成できません。そして、複数の webapps をホストしたい... asp.net mvc ブログ、フォーラム、個人サイトなど...

これを行う他の方法はありませんか?ブログ フォルダを自分の仮想ディレクトリの 1 つに ftp で転送し、オンラインでアクセスすることはできませんか??

4

2 に答える 2

2

ASP.NET Webアプリケーションの場合、通常、それぞれがアプリケーションの開始点として機能する独自の仮想ディレクトリに存在します。

技術的には、次の2つの方法のいずれかで、同じアプリケーションの開始点に2つのアプリケーションを「ピギーバック」することができます。

  1. 各アプリケーションのすべてのファイルを同じディレクトリ(および適切なサブディレクトリ)に配置します

重複するファイルがない場合は、これを回避できます。もちろん、デフォルトページやインデックスページなどのファイルは使用しない可能性があります。とにかく、これはかなり厄介です。

  1. 各アプリのすべての非バイナリファイルを適切なサブディレクトリに配置し、バイナリをメイン仮想の\binディレクトリに配置します。

これを実行できるのは、各アプリケーションのバイナリファイルが名前で重複しておらず、アセンブリ間で名前空間のあいまいさの競合がない場合(ファイル名で2つの異なるアセンブリであるが、名前空間が同じ)である場合のみです。2つの異なるアプリケーションをピギーバックしようとしている場合、後者が発生する可能性ははるかに低くなります。

後者のソリューションで私が目にする大きな問題は、アプリケーションのルート参照を利用するアプリケーションのすべての部分が壊れることです。一部のコードが、次のようなアプリケーションルート参照に基づいて(画像などの)リソースへの参照を解決しようとした場合

~/images/logo.gif

〜は仮想ディレクトリに解決されますが、アプリケーションが存在する追加の(非仮想および非アプリの開始点)サブディレクトリは含まれません。したがって、これの代わりに:

/vd1/app1/images/logo.gif

あなたはこれで終わるでしょう:

/vd1/images/logo.gif

明らかに、それは機能しません。

つまり...両方を同じ仮想ディレクトリに配置できれば、どちらのアプリも壊すことはありませんが、ファイルの競合などをチェックする必要があります。個別のアプリケーション開始点がないと、名前空間の競合の可能性は避けられません。

于 2008-10-28T16:10:25.187 に答える
0

各アプリをいずれかの仮想ディレクトリの個別のサブディレクトリに配置することはできませんか? たとえば、http://server.com/vd1がある場合、 http://server.com/vd1/app1http://server.com/vd1/app2などのようにパーティション分割できます。

于 2008-10-26T11:46:43.473 に答える