3

刚刚将我们的一个 ASP.NET Core 2.1.5 项目升级到今天发布的 v 2.2。部署到生产服务器后,它会失败并关闭工作进程。

项目在 Windows 10 (1803 / 17134.441) 上本地运行良好,但不能在生产服务器上运行。Windows Server 2016 (1607 / 14393.2639) 以及所有最新的 Windows 更新。

我收到以下错误IIS AspNetCore Module V2

找不到进程内请求处理程序。从调用 hostfxr 捕获的输出:进程 ID:5688。文件版本:12.2.18316.0。说明:IIS ASP.NET Core 模块 V2。提交:ce8cf65589734f82b0536c543aba5bd60d0a5a98

下一个错误显示:

错误应用程序名称:w3wp.exe,版本:10.0.14393.0,时间戳:0x57899b8a 错误模块名称:ucrtbase.dll,版本:10.0.14393.2636,时间戳:0x5bda7e9c 异常代码:0xc0000409 错误偏移量:0x000000000006e833e 错误进程应用程序启动时间:0x01d48c39225c1989 错误应用程序路径:c:\windows\system32\inetsrv\w3wp.exe 错误模块路径:C:\Windows\System32\ucrtbase.dll 报告 ID:685582aa-a590-4e03-b09a-5e3c36d7b758 错误包已满名称:错误包相关的应用程序 ID:

我已经重新安装了 x64 Hosting Bundle 以及 SDK。

C:\Users\Administrator>dotnet --version
2.2.100 

是否也进行了所有 2.1-2.2 迁移: https ://docs.microsoft.com/en-us/aspnet/core/migration/21-to-22?view=aspnetcore-2.2&tabs=visual-studio

有什么问题?

4

2 回答 2

4

对我来说,答案是位(部署 x86 到 x64)——pakrym 的评论在这里解决了这个问题:

https://github.com/aspnet/AspNetCore/issues/4413#issuecomment-444624391

总结一下:

  1. 安装 Windows 主机包
  2. 确保独立应用程序以与它们运行的​​ IIS 相同的位数发布(通常是 x64)
  3. 确保未在应用程序池上设置启用 32 位应用程序选项。
  4. 在从独立发布切换到可移植(依赖于框架)发布之前清理发布目录。
  5. 存在一个已知问题,即 CurrentDirectory 在进程内运行时返回 c:\windows\system32\inetsrv,请参阅 https://github.com/aspnet/AspNetCore/issues/4206了解更多详细信息。
  6. 考虑切换到便携式发布,它比独立发布有很多优势。
于 2018-12-07T02:51:41.633 回答
0

此问题返回到您的环境安装的 asp .net 核心运行时间与用于构建您的应用程序的 .net 之间的差异,请注意您必须具有相同的版本,如果您的安全补丁(如 2.2.0 和 2.2.1)甚至不同,您再次面临同样的问题。

于 2020-03-03T20:10:09.340 回答