【问题标题】:Deploy ASP.NET RC1 WebApp in IIS 8.5在 IIS 8.5 中部署 ASP.NET RC1 WebApp
【发布时间】:2016-03-25 11:55:21
【问题描述】:

我正在尝试在安装了 IIS 8.5 的 Windows Server 2012 R2 中部署 ASP.NET 5 WebApp。

我这里的源代码是一个新的 ASP.NET Web 应用程序。如果我在 Visual Studio 2015 中构建并运行它,则可以正常工作。

现在...我想使用发布向导在 ISS 8.5 中部署它,所以我要做的是...

  1. 右键项目名称(WebApplication5)
  2. 我创建了一个自定义配置文件(我命名为 localhost)
  3. 我添加了目标位置。 C:\inetpub\wwwroot
  4. 我配置设置
    • 配置:发布
    • 目标 DNX 版本:dnx-clr-win-x64.1.0.0.rc1-update1
  5. 然后我发布网络应用程序。

之后,我的 C:\inetpub\wwwroot 中有以下文件夹结构

C:\inetpub\wwwroot
     - approot
         - packages
         - runtime
         - src
         - ... bunch of files
     - logs
     - wwwroot
         - css
         - images
         - js
         - lib
         - some files including web.config

现在我编辑了 C:\inetput\wwwroot 的权限以包括 IIS_IUSRS 和 IUSR(我现在授予他们完全访问权限以放弃权限问题)

最后,我去 ISS manager 到 Default Web Site -> Right Click -> Manage Website -> Advanced Settings -> 在物理路径下我添加了 C:\inetpub\wwwroot\wwwroot

我重新启动了 IIS 服务器,当我尝试浏览默认站点时,我收到以下消息...

HTTP 错误 500.19 - 内部服务器错误

无法访问请求的页面,因为相关 该页面的配置数据无效。 详细错误信息:

模块 IIS Web 核心

通知未知

处理程序尚未确定

错误代码0x8007000d

配置错误

配置文件\?\C:\inetpub\wwwroot\wwwroot\web.config

最后...这是 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>

我错过了什么?这在以前的 ASP.NET 版本上非常容易,但我现在无法正确配置。

有什么建议吗? 谢谢!

【问题讨论】:

  • 您在这台机器上安装了 ASP.NET 4.6/5 吗? get.asp.net这个还没有默认安装。
  • 您是否也安装了HttpPlatformHandler?它是 ASP.NET 5 所必需的。
  • EDIT...我还没有安装HttpPlatformHandler,我现在就安装。关于 ASP.NET 4.6/5。我怎样才能检查出来?我相信我已经安装了最新的,因为我使用的是最新的 VS2015
  • 不,但我为您提供了两个链接。 get.asp.netiis.net/downloads/microsoft/httpplatformhandler
  • 需要安装在服务器上。不仅仅是在开发应用程序的操作系统上。这两个和...中的一样吗?您是在本地部署到 IIS 吗?

标签: asp.net asp.net-mvc iis asp.net-core iis-8.5


【解决方案1】:

好吧,一旦你有了它......

首先,确保您的 IIS 中安装了 HTTP 平台处理程序 (x86 / x64)。

现在您需要解锁system.webServer/handlers 部分,该部分可以在服务器节点上的 IIS 管理器中的Configuration Editor 下找到。搜索右侧部分并从右侧操作窗格中将其解锁。

确保应用程序池设置为No Managed Code。 DNX 作为外部进程运行。 IIS 不需要知道它当前正在运行什么。

当我们谈论外部进程时...确保您可以从空的命令提示符运行 dnx(如:不是 Visual Studio 提供的开发人员命令提示符)。

如需完整教程,请查看the official documentation

【讨论】:

    猜你喜欢
    • 2016-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多