如何部署或运行NETCore.App1.0.0-rc2-3002702

How to deploy or run NETCore.App 1.0.0-rc2-3002702

在我将我的应用程序迁移到 RC2 或非常具体的 V.1.0.0-rc2-3002702 之后,我正在努力部署我的应用程序。我注意到发布目录中的文件夹 "approot" 不再存在,"web.cmd" 文件也不再存在。我试图将它部署在 IIS 上,但我得到的只是找不到页面“无法访问此站点”。在官方 MS dotnet 核心文档网站上,它就像 "Create new website in your IIS edit basic settings and you are good to go..."

您需要确保您尝试部署到的服务器安装了 HTTPPlatformHandler

您还需要确保您的 project.json 引用了 IISIntegration 包,并且包含包含您的 web.config 的包含文件。它应该看起来像这样:

{
  "version": "1.0.0-*",
  "buildOptions": {
    "emitEntryPoint": true,
    "debugType": "portable"
  },
  "publishOptions": {
    "include": [
      "wwwroot",
      "web.config"
    ]
  },
  "dependencies": {
    "Microsoft.NETCore.App": {
      "type": "platform",
      "version": "1.0.0-rc2-3002702"
    },
    "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0-*",
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.0-*",
    "Microsoft.Extensions.Logging.Console": "1.0.0-*",
    "Microsoft.AspNetCore.StaticFiles": "1.0.0-*" 
  },
  "frameworks": {
    "netcoreapp1.0": {
      "imports": "dnxcore50"
    }
  }
}

您的 web.config 看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" 
           resourceType="Unspecified"/>
    </handlers>
    <aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" 
                stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout"  
                forwardWindowsAuthToken="false"/>
  </system.webServer>
</configuration>

注意:环境变量LAUNCHER_PATH和LAUNCHER_ARGS如果不是从Visual Studio内部发布,可能会让你头疼。

要在 Azure VM 上启动 RC2 站点并 运行,我必须将该行更改为如下所示:

<aspNetCore processPath="dotnet" arguments="./YourAppEntryPoint.dll" 
            stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" 
            forwardWindowsAuthToken="false"/>

也许我对类似 post 的回答会有所帮助:

不要像在 RC1 中那样将 IIS 指向 wwwroot,而是指向根文件夹。

此外,您的服务器需要 DotNetCore.1.0.0.RC2-WindowsHosting.exe