gpt4 book ai didi

asp.net-core - 在 Nano Server 上运行 ASP.NET 5 会抛出 "Unable to load DLL ' kernel3 2'"

转载 作者:行者123 更新时间:2023-12-03 18:18:57 25 4
gpt4 key购买 nike

我已经基于 ASP.NET 5 beta 8 Visual Studio 模板创建了一个简单的 ASP.NET 5 项目。

我已经使用这个命令发布了项目

dnu publish <path to project.json> --out <path to publish folder> --configuration Release --runtime dnx-coreclr-win-x64.1.0.0-beta8 --wwwroot-out "wwwroot" --no-source

在 nano 服务器上运行 web.cmd 后,我收到此错误:

.\web.cmd : System.DllNotFoundException: Unable to load DLL 'kernel32': The specified module could not be found. (Exception from HRESULT: 
0x8007007E)
+ CategoryInfo : NotSpecified: (System.DllNotFo...LT: 0x8007007E):String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError

at Microsoft.AspNet.Server.Kestrel.Networking.PlatformApis.WindowsApis.LoadLibrary(String dllToLoad)
at Micros
oft.AspNet.Server.Kestrel.Networking.Libuv.Load(String dllToLoad)
at Microsoft.AspNet.Server.Kestrel.ServerFactory.Start(IFeatureCollection serverFeatures, Func`2 application)
at Microsoft.AspNet.Hosting.Internal.HostingEngine.Start()
at Microsoft.AspNet.Hosting.Program.Main(String[] args)
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at Microsoft.Dnx.Runtime.Common.EntryPointExecutor.Execute(Assembly assembly, String[] args, IServiceProvider serviceProvider)
at Microsoft.Dnx.ApplicationHost.Program.ExecuteMain(DefaultHost host, String applicationName, String[] args)
at Microsoft.Dnx.ApplicationHost.Program.Main(String[] args)
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at Microsoft.Dnx.Runtime.Common.EntryPointExecutor.Execute(Assembly assembly, String[] args, IServiceProvider serviceProvider)
at Microsoft.Dnx.Host.Bootstrapper.RunAsync(List`1 args, IRuntimeEnvironment env, String appBase, FrameworkName targetFramework)
at Microsoft.Dnx.Host.RuntimeBootstrapper.ExecuteAsync(String[] args, BootstrapperContext bootstrapperContext)
at Microsoft.Dnx.Host.RuntimeBootstrapper.Execute(String[] args, BootstrapperContext bootstrapperContext)

在 Windows 10 上运行时,相同的命令不会引发此错误。该应用程序在 Windows 10 上运行良好。

最佳答案

Nano Server 没有 kernel32.dll 和 advapi32.dll,因此未链接到默认库的代码将无法运行。您需要将您的代码链接到 onecore.lib 或安装反向转发器。

反向转发器将对 kernel32.dll/advapi32.dll API 的调用重定向到 Nano Server 上可用的对应项。

在某些 OneCore 系统上(例如 Raspberry Pi 2 上的 Win10 IoT Core),默认安装反向转发器。 Nano Server 的情况并非如此,因为目标是使其尽可能小。因此,如果需要,需要手动安装反向转发器。

将此与 Asp.Net 5 相关联 - Http 平台处理程序和 Kestrel(或更具体的 libuv)都链接到默认库。因此,要在 Nano 上运行 Asp.Net 5,您需要转发器,除非您使用 WebListener(在没有转发器的情况下应该可以正常工作)。

关于asp.net-core - 在 Nano Server 上运行 ASP.NET 5 会抛出 "Unable to load DLL ' kernel3 2'",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33467943/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com