2011-12-21 16 views
2

〜/ priv /にMVC3アプリケーションを、〜/ pubにMVC3アプリケーションを追加できますか?2つのMVC3アプリケーションを相互にホストすることはできますか?

私は〜/ priv /にアプリケーションを置くと "XXX.XXXXX.com/"に行くと、〜/ privのアプリケーションを扱うようです。ルートでこれを解決できますか?私が紛失しているものはありますか?助けてください!

編集: 明確にすること、構造は次のように見ることができるという方法があります:誰かがどちらも1をrootになった場合、誰かがrootになった場合、見/ PRIV彼らられるように

[root] 
    [priv] 
    [pub] 

は、誰かがルート/パブに行くと、パブアプリを入手します。

+0

なぜ互い内のネスト仮想ディレクトリ/アプリケーションでしょうか? –

+0

1つはプロプライエタリアプリケーションで、もう1つはパブリックドメインです。彼らは入れ子にする必要はありません。 1つは〜/ pub /にあり、もう1つは〜/ priv /にある可能性があります。唯一の問題は、両者が引き継ぐことです〜/。それを防ぐ方法はありますか? –

答えて

2

あなたはいくつかのことを確認する必要があります。

  • 仮想ディレクトリ[パブ]と[PRIV] なければならない各がIISでアプリケーションとして構成することができます。
  • [root]がアプリケーションとして設定されている場合、サブフォルダ内のアプリケーションは、異なるアプリケーションプールで実行されていてもweb.configの値を継承します。これが競合や予期しない動作を引き起こしていないことを確認してください。
  • 設定がrunAllManagedModulesForAllRequests=trueであることを確認してください。 [root]がアプリケーションとして構成されている場合、子アプリケーションに到達する前にIISからの呼び出しを傍受している可能性があります。あなたは、[ルート]のweb.configファイルに以下を追加したい(ただし、[パブ]でこれを上書きすることを確認して、[PRIV]があります。

    <?xml version="1.0" encoding="utf-8"?> 
    <configuration> 
        <system.webServer> 
        <modules runAllManagedModulesForAllRequests="false"> 
          <remove name="UrlRoutingModule-4.0" /> 
         </modules> 
        </system.webServer> 
    </configuration> 
    
  • 次に、[パブ]のweb.configにそして[PRIV]あなたが追加することができます:あなたは1つのWebアプリケーションのパブリックおよびプライベートのアプリをマージすることができた場合は

    <modules runAllManagedModulesForAllRequests="true"> 
        <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" /> 
    </modules> 
    
+0

ルートは空であり、ファイルはありませんが、プロバイダーはアクセス権のないアプリケーションとして定義している可能性があります。 –

+0

次に、web.configを追加する必要があります。 –

+0

それは非常に良いアイデアです/ポイント!あなたは答えを編集して、web.configファイルをモジュール定義だけでなく、モジュール定義だけで空白にする必要があるかどうかを表示できますか? –

2

アプリケーションごとにサブドメインを作成できます。

+0

これは悪い解決策ではありませんが、それは唯一の方法ですか?各サブドメインにはそれぞれ独自のホスティングが必要です。 –

+0

それはあなたのホスティングプランによって異なります。私はIXを使用し、無制限のサブドメインを非常に合理的な料金で提供しています。 ISPに確認してください。 –

3

1つのサイトで複数のアプリケーションを作成し、異なる別名を使用することができます。

IISマネージャで新しいWebサイトを作成します。 そのウェブサイトを右クリックして、「アプリケーションの追加...」を選択してエイリアス「priv」を与え、他の「パブ」サイトでそのプロセスを繰り返します。

次に、予測サイトをXXX.XXXXX.com/priv/mycontoller/myactionから、もう1つをXXX.XXXXX.com/pub/mycontoller/myactionからヒットできます。

既存のASP.Net MVCサイトにアプリケーションを追加するのではなく、IISのために新しいサイトを作成する必要があると思います。これがルーティングを混乱させると思います。

+0

アプリケーションのいずれかをWebサイトのルートに配置しないでください。問題なく動作します。 StanKが説明しているように、ルートサイトを作成し、サイト内に別個の「アプリケーション」を作成します。 –

+0

私はIISマネージャにアクセスできません。このサイトはホスティング会社を通じてホストされています。 –

0

あなたはAsp.net MVCでエリアを利用することができます

をこの中で。アプリを分割するエリアやモジュールを持つことができる方法より小さなグループ化(あなたのケースでは、プライベートエリアとパブエリア) 実際には、エリアは完全なMVC構造です。

Grouping Controllers with ASP.NET MVC

App Areas in ASP.NET MVC, take 2

Walkthrough: Organizing an ASP.NET MVC Application using Areas

+0

/content/filesystem/projectを完全に結合することは可能ですが、これは私が気にしていたことではありません。この例は、いくつかのアプリケーションを別々のフォルダに配置することができるという点で小規模です。私はアプリケーションを追加するために再コンパイルしたくありません。アプリケーションを開発している他の人が、アプリケーションベース全体のコードにアクセスすることを望まないのは間違いありません。 –

関連する問題