首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >IIS将ASP.NET 5 BETA 8站点部署到IIS时出现HTTP错误500.19 -内部服务器错误

IIS将ASP.NET 5 BETA 8站点部署到IIS时出现HTTP错误500.19 -内部服务器错误
EN

Stack Overflow用户
提问于 2015-10-20 19:18:33
回答 4查看 5.4K关注 0票数 16

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

我将其发布到我的本地文件系统,然后将这些文件拷贝到我的服务器上,该服务器是Windows server 2012 R2

在服务器上的IIS8.5中,我创建了一个应用程序,该应用程序使用一个应用程序池,该应用程序池使用Process Model ->标识作为LocalSystem。

并将路径指向复制的已发布应用程序的wwwroot子文件夹

我的web.config

代码语言:javascript
复制
<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中的浏览

代码语言:javascript
复制
http://localhost/WebApplication1

我得到以下错误

超文本传输协议错误500.19 -内部服务器错误

无法访问请求的页面,因为该页面的相关配置数据无效。

我使用的是Visual Studio2015 ASP.NET 5Web应用程序模板中的默认web.config,所以我只能认为它可能是.net版本。

我使用MSDN method来确定所安装的.NET 4的版本,它对应于.NET框架4.5.1

在我的project.json中

代码语言:javascript
复制
  "frameworks": {
      "dnx451": { }
  },

发布时编译为Win CLR

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

代码语言:javascript
复制
http://localhost:5000/

而且这个网站可以正常工作。

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

已安装ASP.NET 4.5。

应用程序池是正确的。

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

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

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-10-20 19:48:19

HttpPlatformHandler是必备的,所以你需要安装它。

https://azure.microsoft.com/en-us/blog/announcing-the-release-of-the-httpplatformhandler-module-for-iis-8/

[更新:对于RC2和更高版本,需要一个新模块来代替HttpPlatformHandler, ]

票数 16
EN

Stack Overflow用户

发布于 2015-10-20 21:26:23

IIS5 Beta8中的托管模型已更改,现在依赖于ASP.NET HttpPlatformHandler.

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

代码语言:javascript
复制
<?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 release notes

在IIS中托管ASP.NET 5应用程序的

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

您可以使用Microsoft Web Platform安装程序或从Microsoft的IIS站点下载链接上的单独的x86 / x64安装程序安装HttpPlatformHandler:link

注意: HttpPlatformHandler只支持IIS8 +。所以这意味着对于像Windows Server2008IIS7.5这样的老操作系统,你将不能使用R2来托管ASP.NET 5网站,因为这些版本不支持HttpPlatformHandler。

票数 7
EN

Stack Overflow用户

发布于 2016-07-01 00:16:32

使用IISCore1.0,您必须在ASP.Net主机上安装ASP.NET Core Module。你可以使用get it here

https://stackoverflow.com/a/38119924/1821792

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33235257

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档