IIS Windows Server 2016 Standardの最初のサイトをセットアップしています。これはNET Core 2.2
アプリケーションです。サイトを表示できません。
このエラーが発生しています:
HTTPエラー500.0-ANCMインプロセスハンドラーの読み込みエラー
このエラーをクリアしてサイトを表示するには、何を変更すればよいですか?
私のアプリケーションはdll
です。
コマンドプロンプトを使用して、サーバーでアプリケーションをテストしました。
dotnet ./MyApp.dll
これはブラウザに表示されますが、(localhost:5001/
)が付いているサーバー自体にのみ表示されます。
この方法を使用すると、他のサーバーからサイトにアクセスできません。 IISを介してサイトをセットアップすると、サーバーとサイトにアクセスしようとするサーバーの両方でインプロセスエラーが発生します。最初、アウトプロセスエラーを受け取りました。私が読んだ何かがこれ(hostingModel = "inprocess")をweb.config
に追加するように言ったので、追加しましたが、インプロセスエラーを受け取りました。
私はこれを3日間調べており、私が試みたすべてがそれを修正するわけではありません。
開発サーバーにインストールすると、サイトは正常に動作します。
イベントビューアには、「IIS AspNetCore Module V2」の次のエラーが表示されます。
アプリケーション '/ LM/W3SVC/2/ROOT'の開始に失敗しました、エラーコード '0x8000ffff'。
これは私のweb.config
です:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.web>
<customErrors mode="RemoteOnly"></customErrors>
<identity impersonate="false" password="****" userName="****" />
</system.web>
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet" arguments=".\MyApp.dll" stdoutLogEnabled="false" hostingModel="inprocess" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false">
<environmentVariables />
</aspNetCore>
</system.webServer>
</configuration>
同じエラーが発生しました。
Microsoft( https://dotnet.Microsoft.com/download/dotnet-core/current/runtime )によると、 'ASP.NET Core Hosting Bundle 'ホスティングサーバー。
'ASP.NET Core Hosting Bundleには、.NET CoreランタイムとASP.NET Coreランタイムが含まれています。 IISがインストールされているマシンにインストールした場合、ASP.NET Coreも追加されますIIS Module '
私が行った後、 'AspNetCoreModuleV2'がサーバーにインストールされ、すべてが正常に動作します。 'web.config'ファイルを変更する必要はありませんでした。
IIS urlを使用してサイトにアクセスしようとしたが、Visual StudioがIISExpressを使用するように設定されている場合、これを取得できます
参照 ASP.Net Core 1.0 RC2:web.configで言及されているLAUNCHER_PATHおよびLAUNCHER_ARGSとは
簡単に言えば、IISとIISExpressを切り替えると、web.configがVisual Studioによって変更されます。IIS urlを使用する場合、 IISExpressの場合、aspNetCore processPathは間違ったものになります
また、web.configファイルをコピーすることも珍しくありません。 processPathを変更しないと、同じエラーが発生する可能性があります
私にとってそれは私が私のアプリでASPNETCORE_ENVIRONMENT環境変数が2回定義されているためでした-1つはweb.configで、もう1つはapplicationhost.configで
ここでこれを修正しました Asp.Net Coreがロードに失敗します -プログラムがインプロセスモデルまたはアウトプロセスモデルを使用することを指定する必要があります。
CreateWebHostBuilderを次のように変更しました。
public static IWebHostBuilder CreateWebHostBuilder(string[] args)
{
var env = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
var builder = WebHost.CreateDefaultBuilder(args);
if (env == EnvironmentName.Staging || env == EnvironmentName.Production)
builder.UseIIS();
builder.UseStartup<Startup>();
return builder;
}
PS。 ASPNETCORE_ENVIRONMENT
を.pubxmlデプロイメントプロファイルに追加します。
<PropertyGroup>
<EnvironmentName>Staging</EnvironmentName>
</PropertyGroup>
私の特定の問題については、それはIISのサイト権限でした。
「Everyone」へのアクセス許可を編集したところ、うまくいきました。私はこのページから情報を得ました: https://github.com/aspnet/AspNetCore/issues/6111