Blazor
アプリケーションを実行してみます。
Web.Server runs .NET Core 3.0
Web.Client runs .NET Standard 2.0
Web.Shared runs .NET Standard 2.0
アプリケーションを公開してIIS
にアップロードした後、次のエラーが発生します。
HTTP Error 500.31 - ANCM Failed to Find Native Dependencies
Common solutions to this issue:
The specified version of Microsoft.NetCore.App or Microsoft.AspNetCore.App was not found.
Event Viewer
には、次のエラーメッセージが含まれています。
HTTP Error 500.31 - ANCM Failed to Find Native Dependencies
dotnet --info
を実行すると、Microsoft.NetCore.App
とMicrosoft.AspNetCore.App
の両方にバージョン3が含まれていることがわかります。PSC:\ Users\FooBar> dotnet --info .NET Core SDK(グローバルを反映しています)。 json):バージョン:3.0.100-preview6-012264コミット:be3f0c1a03
Runtime Environment:
OS Name: Windows
OS Version: 10.0.17763
OS Platform: Windows
RID: win10-x64
Base Path: C:\Program Files\dotnet\sdk\3.0.100-preview6-012264\
Host (useful for support):
Version: 3.0.0-preview6-27804-01
Commit: fdf81c6faf
.NET Core SDKs installed:
1.0.4 [C:\Program Files\dotnet\sdk]
2.0.0 [C:\Program Files\dotnet\sdk]
2.1.101 [C:\Program Files\dotnet\sdk]
3.0.100-preview6-012264 [C:\Program Files\dotnet\sdk]
.NET Core runtimes installed:
Microsoft.AspNetCore.All 2.1.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.App 2.1.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 3.0.0-preview6.19307.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.NETCore.App 1.0.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 1.1.2 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.0.0 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.0.6 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.2 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 3.0.0-preview6-27804-01 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.WindowsDesktop.App 3.0.0-preview6-27804-01 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
To install additional .NET Core runtimes or SDKs:
https://aka.ms/dotnet-download
ASP.NET Core Diagnostics:
IMPORTANT: This report might contain confidential information. Mask such before sharing to others.
-----
System Time: 6/18/2019 12:50:58 AM
Processor Architecture: AMD64
OS: Microsoft Windows NT 10.0.17763.0
Server Type: IIS
Scan 31 installed module(s).
ASP.NET Core module version 2 is installed for .NET Core 2.2 and above: C:\Program Files\IIS\Asp.Net Core Module\V2\aspnetcorev2.dll (13.0.19158.0).
Scan 86 registered handler(s).
* Found a valid ASP.NET Core handler as { Name: aspNetCore, Path: *, State: Enabled, Module: AspNetCoreModuleV2, Entry Type: Local }.
Visual C++ runtime is detected (expected: 14.0, detected: 14.14.26405.0 built by: VCTOOLSREL): C:\WINDOWS\system32\msvcp140.dll.
Scan aspNetCore section.
"processPath": dotnet.
"arguments": .\Web.Server.dll.
"hostingModel": inprocess.
"runtimeTarget": .NETCoreApp,Version=v3.0.
Please refer to pages such as https://dotnet.Microsoft.com/download/dotnet-core/2.2 to verify that ASP.NET Core version 13.0.19158.0 matches the runtime of the web app.
IISがサーバーでこのエラーをスローするのはなぜですか?
注:Visual Studio 2019から機能します。
同じ問題があります。私の場合、問題はdotnet publishコマンドの誤った [〜#〜] rid [〜#〜] にありました。自己完結型の展開を行っていて、それをアプリサービスにダウンロードしました。
その結果、コマンドは次のようになります。
dotnet publish -c Debug -r win-x86 --self-contained
ASP.NET Coreプロジェクトを.NET Core 3.0から3.1にアップグレードし、Microsoft .NET Core 3.1.0-Windows Server Hostingをインストールした後も、同じエラーが発生します。
web.configハンドラーをAspNetCoreModuleV2
からAspNetCoreModule
に変更し、問題なく動作しました。
イベントビューアを調べて根本的な原因を見つけます。このエラーには複数の原因がある可能性がありますが、私の場合、CodeAnalysisに関連するアセンブリが見つかりませんでした
アプリケーションの依存関係が見つかりません。アプリケーションのターゲットであるMicrosoft.NetCore.AppおよびMicrosoft.AspNetCore.Appのバージョンがインストールされていることを確認します。
'aspnetcorev2_inprocess.dll'が見つかりませんでした。例外メッセージ:エラー:アプリケーション依存関係マニフェスト(myproject.deps.json)で指定されたアセンブリが見つかりませんでした:パッケージ: 'Microsoft.CodeAnalysis.CSharp.Workspaces'、バージョン: '3.3.1'パス: 'lib/netstandard2。 0/Microsoft.CodeAnalysis.CSharp.Workspaces.dll '
それらは関連していますが、これらのメッセージは異なるイベントにありました。
このエラーには多くの理由が考えられます。正確なエラーを見つけるには、web.configで "stdoutLogEnabled"をtrueに変更します。これにより、正確な問題を見つけることができるログファイルが生成されます。私の場合、いくつかのDLLを見逃していた。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet" arguments=".\MyWebsite.Web.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
</system.webServer>
</location>
</configuration>
<!--ProjectGuid: 20E974DC-FA0B-4957-8D1E-3466E348F82E-->
開発サーバーからステージングサーバーに展開したときにも同じエラーメッセージが表示されました。 NugetパッケージMicrosoft.NetCore.App(バージョン2.2.8)を追加して問題を修正しました。時々答えはエラーメッセージにあります。
ワークステーションに不足しているパッケージの名前を一覧表示するのと同じ問題がありました。コマンドプロンプトを開き、以下で実行して、マシンで使用可能なすべてのパッケージを確認します。
dotnet --info
インストールされているすべての.NetコアSDKとランタイムが一覧表示されます。次に、天気に必要なパッケージが不足しているかどうかを確認します。これらの必要なパッケージは、公式サイト https://dotnet.Microsoft.com/download/dotnet-core からインストールできます。ソリューションを再構築すれば、機能するはずです。