2016-05-26 21 views
0

古い静的なWebサイトをASP.NETコアに移行しようとしています。私の古いウェブサイトでは、ASP MVC 4アプリがサイト内に存在していました。ASP.NET Coreアプリケーション内にASP MVC 4アプリケーションをインストールする方法

今私のASP.MVC 4アプリケーションの生活ASP.NETコアアプリケーション内で、以下の画像で説明するよう:

enter image description here

ASP MVC 4アプリ内のすべてのルートを個別に管理する必要があります。したがって、メインのASP.NETコアアプリケーションは、ディレクトリ/usersの下のすべてのルートをバイパスする必要があります。そのため、これらの要求はMVC 4(ユーザー)アプリケーションによって処理されます。

は、私は次のように、通常、これらの例を管理:

routes.IgnoreRoute("https://stackoverflow.com/users/{*pathInfo}"); 

をしかし、今、私はASP.NETコアにルートを無視することはできませんようです。

私はstatic filesを設定しようとしたが、それは働いていませんでした:

は、私はこの状況を管理することができる方法を知っていますか?

答えて

1

ASP.NETコアサイトは、新しいWebサーバーKestrelで実行されています。 IISはすべての要求をlocalhost:5000にリダイレクトするだけです。そのためIISの下(実際には背後にある)でASP.NETコアWebサイトを実行するにはspecial web.configが必要です。

"/ users"フォルダを扱うようにASP.NETコアを設定しないでください(遅すぎます)。IISを設定しようとすると、そのフォルダへのリクエストをkresrelウェブサーバーにリダイレクトしないでください。すべて。

AFAIKでは、1つの(ルート)web.configファイルに異なるHTTPハンドラ(異なるサブディレクトリ用)を構成する可能性がないため、1つのIIS Webサイトで古いASP.NETプロジェクトと新しいASP.NETプロジェクトを混在させることはできません。

1

私はほとんどドミトリーの反応に同意しますが、さらに追加する必要があります。私はコメントとしてそれを入れていただろうが、それは長すぎる。

異なるディレクトリに対して異なるハンドラを使用するようにIISを構成することは可能です。私はASP.NETコアでどのように機能するのかははっきりしていませんが、純粋なIISの観点からは、選択したハンドラにリクエストをルーティングすることができます。例えば、私のweb.configの<system.webServer><handlers>セクションでは、これらの2行を使用して、/ bundle /ディレクトリの.jsファイルと.cssファイルの要求を静的ファイルハンドラにルーティングし、そのような要求が統合されたパイプラインに入るようにします。私は、コードを経由してアクセスすることができます

<add name="js-files--use-integrated-pipeline" path="/bundle/*.js" verb="GET,HEAD" type="System.Web.StaticFileHandler" resourceType="Unspecified" preCondition="integratedMode"/> 
<add name="css-files--use-integrated-pipeline" path="/bundle/*.css" verb="GET,HEAD" type="System.Web.StaticFileHandler" resourceType="Unspecified" preCondition="integratedMode"/> 

対照的に、私はに別のハンドラにすべてのhtmlファイルのルートを持って起こる:

<add name="html-files--use-integrated-pipeline" path="*.html" verb="*" type="System.Web.UI.PageHandlerFactory" resourceType="Unspecified" preCondition="integratedMode"/> 

それも、ASP.NETコアかかわらこともおそらく言及する価値があります一般的な設定情報のためにweb.configを使用していませんが、まだウェブがあります。IISの設定に使用されるWebiteのルートに設定します。

この情報は、ソリューションを解決するうえで役立ちます。

関連する問題