IIS部署ASP.NET5beta 8站点给IIS提供HTTP错误500.19-内部服务器错误如何解决?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (57)

我创建了一个新的ASP.NET5 Beta 8 Web应用程序。

我将它发布到我的本地文件系统并将这些文件复制到我的服务器,这是一个Windows Server 2012 R2

在服务器上的IIS 8.5中,我创建了一个使用应用程序池的应用程序,该应用程序池使用Process Model - > Identity作为LocalSystem。

并将路径指向复制的已发布应用程序的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"></httpPlatform>
  </system.webServer>
</configuration>

直接在服务器上运行URL或单击IIS中的浏览

http://localhost/WebApplication1

我收到以下错误

HTTP Error 500.19 - Internal Server Error

The requested page cannot be accessed because the related configuration data for the page is invalid.

我使用的是Visual Studio 2015 ASP.NET 5 Beta8 Web应用程序模板的默认web.config,因此我只能认为它可能是.net版本。

我使用MSDN方法来确定.NET 4的安装版本,它对应于.NET Framework 4.5.1

在我的project.json中

  "frameworks": {
      "dnx451": { }
  },

我在发布时将其编译为Win CLR

当我到达部署目录中的我的批准文件夹时,我可以运行web.cmd Web服务器,然后通过创建的端口访问我的网站。

http://localhost:5000/

并且这个网站工作正常。

如果我查看我的IIS服务器角色安装的组件

ASP.NET 4.5已安装。

应用程序池是正确的。

ASP.NET 4网站使用相同的应用程序池在IIS中正确运行

我的问题1.为什么IIS说web.config无效?2.如何获得ASP.NET 5 Beta 8网站在IIS中运行?

提问于
用户回答回答于

ASP.NET 5 Beta 8的宿主模型已经发生变化,现在依赖于IIS HttpPlatformHandler

会在wwwroot文件夹中注意到您的web.config,或者应用程序包含对它的引用。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <add name="httpPlatformHandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified"/>
    </handlers>
    <httpPlatform processPath="%DNX_PATH%" arguments="%DNX_ARGS%" stdoutLogEnabled="false" startupTimeLimit="3600"/>
  </system.webServer>

上面的%DNX_PATH%转换为“.. \ approot \ web.cmd”

ASP.NET BETA 8发行说明

在IIS中托管ASP.NET 5应用程序现在将使用配置为转发到ASP.NET 5 Kestrel服务器的IIS HttpPlatformHandler来实现。HttpPlatformHandler是本机IIS模块,需要由运行IIS的服务器(安装程序:x86,x64)上的管理员安装。它也已包含在用于在IIS Express上进行本地开发的beta8 Web工具更新中。此本机IIS模块管理启动外部应用程序主机进程(在本例中为dnx.exe)以及将请求从IIS传送到托管进程。

可以使用Microsoft Web Platform安装程序安装HttpPlatformHandler,或从Microsoft的IIS站点链接的下载链接中单独安装x86 / x64安装程序。

请注意:HttpPlatformHandler仅支持IIS 8 +。因此,对于像Windows Server 2008 R2这样的旧版操作系统,它随IIS 7.5一起提供,将无法使用IIS来托管ASP.NET 5网站,因为这些版本不支持HttpPlatformHandler。

扫码关注云+社区