2

.NET Core Asp.NET WebアプリケーションをWindows Server 2008 R2に公開するとエラーが発生します。それは、libuvに関係しています:System.DllNotFoundException:Windows Server 2008 R2で.NET Core Webサイトを公開するときにDLL 'libuv'を読み込めません

Unhandled Exception: System.AggregateException: One or more errors occurred. ---> System.DllNotFoundException: Unable to load DLL 'libuv': The specified module could not be found. (Exception from HRESULT: 0x8007007E) 
at Microsoft.AspNetCore.Server.Kestrel.Internal.Networking.Libuv.NativeMethods.uv_loop_size() 
at Microsoft.AspNetCore.Server.Kestrel.Internal.Networking.Libuv.loop_size() 
at Microsoft.AspNetCore.Server.Kestrel.Internal.Networking.UvLoopHandle.Init(Libuv uv) 
at Microsoft.AspNetCore.Server.Kestrel.Internal.KestrelThread.ThreadStart(Object parameter) 

奇妙なことがあり、私は私の開発マシン上でローカルに公開するときに、私は、公開フォルダにlibuv.dllを見ることができます。アプリケーションはIISを介してローカルマシン上で動作します。

project.jsonフレームワーク:これらのコマンドを使用して

"frameworks": { 
    "net461": {} 
}, 

dotnet restore 
dotnet build 
dotnet publish --configuration Release --runtime active 

私はこの問題を解決することができますどのように任意のアイデア?

+0

asp.net-coreの最終版を使用していますか?この問題のような継ぎ目は、RC2リリースで修正されました - https://github.com/aspnet/KestrelHttpServer/issues/627 – Set

+0

この問題の問題は、タイトルがコア用だと宣言していますが、project.jsonファイルはそうでないことを示しています。 – Joshua

答えて

1

このエラーの原因は、少なくとも10か月後の私の場合は今原因となっていました。私は数日前に作成した新しいプロジェクトではなく、新しいテンプレートで

<PropertyGroup> 
    <TargetFramework>net47</TargetFramework> 
    <RuntimeIdentifier>win7-x86</RuntimeIdentifier> 
    </PropertyGroup> 

は、私は古いWeb-APIプロジェクトは、.NETコア1.1で作成されたファイル *.csprojこの PropertyGroupで見つかっていました.NET Core 2.0のようになりました。

<PropertyGroup> 
    <TargetFramework>net47</TargetFramework> 
    </PropertyGroup> 

ここではRuntimeIdentifierが見つかりませんでした。私はそれを新しいプロジェクトに追加し、エラーは消えました。これで、サーバーは期待どおりに起動します。

関連する問題