4

标题:

在 Windows Server 2012 IIS 8.5 上运行 asp.net 核心应用程序时出现 500 错误代码,但在通过指定生成的 exe 文件(即“MyApplication.exe”)从命令行执行时工作正常

细节:

它没有生成任何错误日志,并且在 Windows 事件查看器中没有与此相关的内容,所以我对正在发生的事情一无所知。我很确定问题不在生成的包中(使用 dotnet publish),因为它是通过 TeamCity 生成的,然后将相同的包部署到不同的机器上,并且创建主机站点的过程也使用 OctopusDeploy 自动化,这适用于其他机器。在不工作的机器上有所不同的是:

  • 它安装了 dotnet-core RC1(我在部署过程之前卸载了它)
  • HttpPlatformHandler 模块已在 IIS 模块中注册(我已将其删除但仍无法正常工作)
  • 操作系统是 Windows Server 2012(而其他机器是 2008 和 2012 R2)

我做了以下事情,但它总是给我 500 错误代码,日志中没有错误,Windows 事件查看器中没有相关事件。

  • 创建了一个 app_offline.htm 文件,但结果相同
  • iisreset(多次,当我在 IIS 中进行更改时)
  • 重新启动机器(仅 2 次)
  • 重新安装asp net core模块(手动并修复)
  • 授予对该文件夹中 Default AppPool{{ApplicationName} 的读取、写入、执行访问权限
  • 将应用程序池标识更改为管理员用户

我认为问题出在 IIS 和 aspnet 核心模块之间,因为这个应用程序确实可以在控制台中运行。而且我也确信 web.config 是正确的,因为在 web.config 中的其他两台机器上也是如此,它被指示运行“.{{MyApplication}}.exe”

任何帮助都将受到高度赞赏,因为我已经花了一整天的时间,而且明天真的没有精力再做这件事了。

4

1 回答 1

1

我解决了我自己的问题。如果有人遇到同样的问题,这是解决方案。

dotnet core 应用程序的应用程序池已no managed code选择但也确保 Managed pipeline mode设置为Classic

于 2016-10-06T13:34:29.363 回答