【问题标题】:ASP.NET 5 Failed to initialize runtime on IISASP.NET 5 无法在 IIS 上初始化运行时
【发布时间】:2023-03-28 04:08:01
【问题描述】:

当我将 ASP.NET 5 RC1 项目发布到 IIS 服务器时,出现以下日志错误。

无法初始化运行时 0x

IIS 7.5,安装 64 位 HTTP 平台处理程序并遵循以下说明 docs.asp.net/en/latest/publishing/iis.html

我的项目在本地使用 VS2015 和 IIS Express 运行良好。 关于这个错误的任何想法?

更新了approot文件夹结构:

运行时文件夹:

wwwroot 中的 Web.config(自动生成):

<configuration>
  <system.webServer>
    <handlers>
      <add name="httpplatformhandler" path="*" verb="*"
           modules="httpPlatformHandler" resourceType="Unspecified" />
    </handlers>
    <httpPlatform processPath="..\approot\web.cmd" 
           arguments="" 
           stdoutLogEnabled="false" 
           stdoutLogFile="..\logs\stdout.log" 
           startupTimeLimit="3600" 
           forwardWindowsAuthToken="true"></httpPlatform>
  </system.webServer>
</configuration>

approot 中的 web.cmd(自动生成):

@echo off
SET DNX_FOLDER=dnx-clr-win-x64.1.0.0-rc1-update1
SET "LOCAL_DNX=%~dp0runtimes\%DNX_FOLDER%\bin\dnx.exe"

IF EXIST %LOCAL_DNX% (
  SET "DNX_PATH=%LOCAL_DNX%"
)

for %%a in (%DNX_HOME%) do (
    IF EXIST %%a\runtimes\%DNX_FOLDER%\bin\dnx.exe (
        SET "HOME_DNX=%%a\runtimes\%DNX_FOLDER%\bin\dnx.exe"
        goto :continue
    )
)

:continue

IF "%HOME_DNX%" NEQ "" (
  SET "DNX_PATH=%HOME_DNX%"
)

IF "%DNX_PATH%" == "" (
  SET "DNX_PATH=dnx.exe"
)

@"%DNX_PATH%" --project "%~dp0src\Pms.Client.Web" --configuration Debug web %*

尝试在服务器上使用 WinDbg 的 dnx.exe 并得到以下错误代码。希望有人能够为我翻译。谢谢!

ModLoad: 000007fe`f96d0000 000007fe`fa035000   C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll
ModLoad: 000007fe`fa530000 000007fe`fa601000   C:\Windows\system32\MSVCR100_CLR0400.dll
(668.126c): Unknown exception - code 04242420 (first chance)
    ModLoad: 000007fe`ee610000 000007fe`ef889000   C:\Windows\assembly\NativeImages_v4.0.30319_64\mscorlib\7f2c596fb4811af2d6fc7a5132c75d10\mscorlib.ni.dll
    ModLoad: 000007fe`f5510000 000007fe`f5524000   C:\Windows\Microsoft.NET\Framework64\v4.0.30319\nlssorting.dll
    ModLoad: 000007fe`fc850000 000007fe`fc868000   C:\Windows\system32\CRYPTSP.dll
    ModLoad: 000007fe`fc3b0000 000007fe`fc3f7000   C:\Windows\system32\rsaenh.dll
    ModLoad: 000007fe`fcd20000 000007fe`fcd2f000   C:\Windows\system32\CRYPTBASE.dll
    ModLoad: 000007fe`f4d90000 000007fe`f4f03000   C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clrjit.dll
    (668.126c): C++ EH exception - code e06d7363 (first chance)
    (668.126c): CLR exception - code e0434352 (first chance)
    (668.126c): C++ EH exception - code e06d7363 (first chance)
    (668.126c): CLR exception - code e0434352 (first chance)
    (668.126c): C++ EH exception - code e06d7363 (first chance)
    (668.126c): CLR exception - code e0434352 (first chance)
    (668.126c): C++ EH exception - code e06d7363 (first chance)
    (668.126c): CLR exception - code e0434352 (first chance)
    ntdll!ZwTerminateProcess+0xa:

【问题讨论】:

  • 在 approot 文件夹中执行 web.cmd 时遇到同样的错误。
  • 你能在命令提示符下运行“dnvm list”吗?
  • 不,“dnvm”未被识别为命令。我必须在我的服务器上安装其他东西吗?
  • @ShaunLuttin,我刚刚通过 VS2015 发布,右键单击 Web 项目,然后选择“发布”到文件系统。在 IIS 方面,正如我所提到的,我按照官方说明配置 Web 服务器。谢谢!
  • @ShaunLuttin 这是我接触asp.net core的第一个版本。

标签: iis asp.net-core


【解决方案1】:

解决了这个问题。答案很简单,但故事很长。

我刚刚在服务器上安装了.NET Framework 4.5.1,错误消失了。

然后我得到了另一个众所周知的问题 "

您必须将引用程序集添加到 System.Runtime

"

尝试了我在这个网站上找到的所有方法,最终放弃了。当我在发布时选中构建二进制文件的选项时,魔法就出现了: image here.

只需为可能遇到类似情况的人发布此解决方法。我仍然不太清楚底层的东西。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-29
    • 1970-01-01
    • 1970-01-01
    • 2017-03-13
    • 1970-01-01
    • 1970-01-01
    • 2013-11-07
    • 1970-01-01
    相关资源
    最近更新 更多