4

一部のアプリケーションを ASP.NET 5 beta7 から RC1 に移行中です。HTTPPlatformHandler を使用すると、これらの ASP.NET 5 RC1 アプリケーションを IIS サイトのルートとして実行できます。ただし、それらはサイトのサブディレクトリ (「アプリケーションの追加」を右クリック) としては実行されません。完全な応答は次のとおりです。

HTTP/1.1 404 Not Found
Content-Length: 0
Server: Kestrel
X-Powered-By: ASP.NET
Date: Tue, 24 Nov 2015 14:59:04 GMT

アプリがサイトのルートであり、同じアプリ プールを使用している場合、ルートは正常に提供されるため、アクセス許可の問題ではありません。

アプリ プールは、「マネージド コードなし」および統合パイプライン用に構成されています。

ルート アプリケーションの web.config は次のようになります。

<configuration>
  <system.webServer>
    <handlers>
      <add name="httpplatformhandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified" />
    </handlers>
    <httpPlatform processPath="..\approot\web.cmd" arguments="" stdoutLogEnabled="false" stdoutLogFile="..\logs\stdout.log" startupTimeLimit="3600"></httpPlatform>
  </system.webServer>
</configuration>

サブアプリケーションでは、「httpplatformhandler に設定された一意のキー属性 'name' を持つタイプ 'add' の重複したコレクション エントリを追加できません」というエラーを回避するために、httpplatformhandler ハンドラーを削除する必要がありました。

kestrel/httpplatformhandler を使用する必要があるため、サイトの下でアプリケーションとして実行することは可能ですか?

4

1 に答える 1

10

この問題は beta8 で始まり、RC1 ではまだ未解決の問題です。ASP.NET IIS 統合の問題 #14を参照してください。「その修正が来ています。」@davidfowlは言います。「これは、修正が利用可能になるまでの回避策です。httpPlatformHandler チームと協力して、beta8 と rc1 で見つかったバグを修正しています。」

Startup.Configure回避策は、次のように IIS アプリ パスをマップすることです。

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    app.Map("/MyAppPath", (myAppPath) => this.ConfigureMyAppPath(myAppPath, env));
}

public void ConfigureMyAppPath(IApplicationBuilder app, IHostingEnvironment env)
{
    // the actual Configure code
}
于 2015-11-24T17:48:26.127 に答える