ASP .Net Core 2.1 Web APIを最近購入した新しいサーバー(Windows Server 2016 Standardを実行)に展開しました。APIは開発用PCと古いサーバー(Windows Server 2012 R2を実行しています)。しかし、この新しいサーバーでは、次のエラーが発生します。
500 - Internal server error.
There is a problem with the resource you are looking for, and it cannot be displayed.
1年前にも、古いサーバーで実行しようと苦労したことを覚えています。最終的には動作するようになりましたが、何をしたのか思い出せません。このエラーに関する詳細情報を取得する方法はありますか?新しいサーバーのWindowsイベントビューアを確認しましたが、何もありません。また、web.configにstdoutLogEnabled = "true"がありますが、ログが生成されていません-そして\ logs\stdoutパスを作成したので、フォルダーは存在します...
Startup.csにapp.UseDeveloperExceptionPage();もありますが、これ以上取得できません単純な500内部サーバーエラーという情報。
これは私のweb.configがどのように見えるかです:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet" arguments=".\PropWorx.API.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" />
</system.webServer>
</location>
</configuration>
<!--ProjectGuid: cfa62a1f-c5f6-43f8-bcbe-04068e40b803-->
Microsoft .NET Core 2.1.1 --Windows Server Hostingがインストールされ、Microsoft .NET Core Runtime-2.1.1がインストールされています(x86とx64の両方) 。
私が言ったように、それは私の開発用PCと古いサーバーで動作するので、新しいサーバーでの構成の問題である必要があります。 500内部サーバーエラー以外のより詳細なエラー情報を取得する方法はありますか?ありがとう...
私はついにそれを理解しました! .Net Core Windows ServerHostingバンドルの古いバージョンがありました。バージョン2.1.1をインストールしました。それを削除し、バージョン2.1.4をインストールすると、動作するようになりました。お時間を割いてご支援いただき、誠にありがとうございます。ほんとうにありがとう!
さまざまな理由でこの問題が発生する可能性があります。
これがブラウザーでのみ発生している場合(curlまたはpostmanを使用している場合)、フライト前の要求エラーである可能性があります。次に、UrlScan.ini(Windows 2016では変更されていないと思います)を変更する必要があります。パス(C:\ Windows\System32\inetsrv\urlscan)で、[AllowVerbs]にOPTIONSを追加します。
そうでない場合は、Microsoftのドキュメントに記載されている手順に従っていることを確認してください。
インストールが必要な場合があります サーバー上でVisual C++ 2015再配布可能
ログを取得するには、「IncludeScopes」を変更します。true、appsettings.jsonログセクションで、イベントビューアも確認します。
これがお役に立てば幸いです。