1

質問によると、これは私が達成したいことです:

  • IIS(7)で別のWebサイトノードを作成して、展開されたASP.NET 4 MVC(およびWeb API)アプリケーションをホストします。たとえば、デフォルトのWebサイトノードの下でIISにアプリケーションを作成する代わりに、別のWebサイトノードが必要です。これは、アプリケーションweb.configに対する完全な権限を持ち、Web.configがサブフォルダーに配置されている場合に制限がないようにするためです。

  • 開発用IISサーバーに展開しているとします。通常、Webサイトノードは、のようなURLに配置されますsome.IP.addr.ess/。代わりに、WebサイトをのようなURLに配置したいと思いますsome.IP.addr.ess/some/path/。これは、サブフォルダーにデプロイされたときにもWebアプリケーションが機能するようにするためです。これは、同じサーバーに別のWebアプリをデプロイし、からアクセスできるようにしたいためでもありますsome.IP.addr.ess/another/path/

私のごちゃごちゃした要件を明確にするために:)私は持っていたいです:

  1. サーバー上で実行されている1つのIISWebサーバーインスタンス。1つのIPと、場合によってはドメイン名が含まれます。
  2. IISインスタンス内には、アプリケーションごとに1つずつ、複数のWebサイトノードがあります。アプリケーションはASP.NETMVC/WebAPIで実行されている可能性があります。別のアプリケーションがPHPで実行されている可能性があります。もう1つは、静的HTMLページである可能性があります。ここでは、アプリケーションを一般的な用語として言っていますが、必ずしもIISアプリケーションに関連しているわけではありません。
  3. サーバーにIPアドレスがある場合、たとえば、各アプリケーションは、、などの123.123.123.123URLで到達可能である必要があります。123.123.123.123/MvcApp1123.123.123.123/PhpApp2

Webで検索しましたが、おそらく正しい用語を使用していませんでした。デフォルトノードや仮想ディレクトリなどでアプリケーションを作成する方法に関する記事を常に入手しました。その後、このASP.NETフォーラムの投稿を見つけました。できないと言う。** 皆さんありがとう

編集-以下に尋ねられるように、問題の根本に行きます:
私は異なるURLパスを持つ異なるアプリを参照したいので、例えばIPaddress / Mvc1、IPaddress/Php2など。
これはすべて、本番サーバーではなく、開発サーバー、およびテストとステージングに必要です。したがって、そもそもドメインはすぐには必要ありません。
お互いが正しく機能するのを妨げない限り、サブフォルダー、仮想ディレクトリ、またはアプリケーションでアプリとWeb.configを使用できます。たとえば、独自のルーティングを備えたASP.NET MVC、ASP.NET Web API、およびPHPアプリケーションの隣にあるASP.NETアプリケーション。

4

2 に答える 2

1

私はあなたが何をしているのか理解していると思いますが、あなたは物事についていくつかの根本的な誤解を持っていると思います。

まず、はい、サーバー上に複数のWebサイトノードを持つことができます。また、これらのノードはすべて同じIPアドレスに応答できますが、HTTP 1.1ホスト名を使用する場合にのみ機能します。つまり、異なるドメイン名(ホスト名)で各サイトを参照する必要があります。したがって、次のようになります。

domain1.com/mvc1 domain2.com/php1

domain1.comとdomain2.comはどちらも123.123.123.123に解決されますが、IISはホスト名フィールドを調べて、移動する必要のあるサイトを判別します。

IPアドレス123.123.123.123を入力すると、IISは意味のあるサイトを認識しないため、デフォルトのWebサイトを使用します。これが重要です。ホスト名がない場合は、常にデフォルトのサイトが使用されます。

IPアドレスを使用する場合の唯一のオプションは、デフォルトサイト内のアプリケーションフォルダを使用することです。少なくとも通常のIISでは。

于 2013-03-22T19:30:38.610 に答える
0

IISをざっと見てからしばらく経ちましたので、少し錆びていて、あなたのシナリオに出くわしたことはありません。ただし、これが私が理解できることです。

サイトの作成に関するIISドキュメントでは、「一意のバインディング」というフレーズについて多く言及していますが、その一意性がどの範囲にあるかを明確にすることはできませんが、サーバー全体を意味すると想定するのは論理的です。したがって、2つのサイトをバインドする必要がある場合は同じURLの場合、それは不可能のようです。ドキュメントには、バインディングでプロトコル、ポート、およびホストを指定できることも記載されています。パスについては言及されていないことに注意してください。下位レベルのものにバインドできないようです。これは、サイトをにバインドするように設定できるが、にバインドできないことを示してwww.somehost.comwww.somehost.com/some/path/ます。

そうは言っても、症状ではなく、問題の根本を修正することで問題を解決できる可能性があります。「1つのURLに2つのアプリケーションを展開できるようにサブパスの下にIISサイトを設定するにはどうすればよいですか?」ではなく、「1つのURLに2つのアプリケーションを設定してWeb上の権限に問題がないようにするにはどうすればよいですか?」設定?」

1つのURLのサブパスの下に複数のアプリケーションを非常にうまくデプロイできることを知っています。これはまさに私たちが行っていることだからです。ASP.NETMVCに1つのアプリケーションがwww.ourURL.com/somepathあり、にレガシーASP.NETClassicアプリがありwww.ourURL.com/otherpathます。2つのアプリケーションは、単一のVisual Studioソリューションの下にある別々のプロジェクトであり、それぞれに独自のWeb.configがあります。

アプリケーションの構造に関する情報や、Web.configおよびサブフォルダー関連の制限で発生している問題の詳細についての詳細がなければ、これ以上役に立ちません。私が言ったように、私たちは職場でこのように展開し、どちらにも問題は発生していません。

于 2013-03-22T16:53:48.697 に答える