从iis 8.5 Windows Server 2012上的asp.net核心应用程序获取500错误代码,但在控制台上运行正常

时间:2016-09-08 19:34:10

标签: .net asp.net-core windows-server-2012 iis-8.5 iis-modules

标题:

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

详细信息:

它没有生成任何错误日志,并且在Windows事件查看器中没有任何与此相关的内容,因此我无能为力。我很确定问题不在生成的包中(使用dotnet发布),因为它是通过TeamCity生成的,然后将相同的包部署到不同的机器上,并且使用OctopusDeploy自动创建主机站点的过程也可以使用其他机器。机器上不起作用的东西是:

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

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

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

我认为问题出在IIS和aspnet核心模块之间,因为这个应用程序可以在控制台中运行。我也确定web.config是正确的,因为同样在web.config中的其他两台机器上工作,它被指示运行"。{{MyApplication}}。exe"

任何帮助都将受到高度赞赏,因为我花了一整天的时间,并且明天再也没有精力去做。

1 个答案:

答案 0 :(得分:0)

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

dotnet核心应用的应用程序池选择了no managed code 但也要确保 Managed pipeline mode设置为Classic