在IIS 8.5中部署ASP.NET RC1 WebApp

时间:2015-12-18 17:50:35

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

我正在尝试在安装了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. 然后我发布了网络应用。
  6. 之后,我的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经理默认网站 - >右键单击 - >管理网站 - >高级设置 - >在物理路径下我添加了 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曾经非常容易,但我现在无法正确配置。

    任何指针? 谢谢!

1 个答案:

答案 0 :(得分:2)

一旦你拥有了......

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

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

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

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

有关完整教程,请结帐the official documentation