在我将应用程序迁移到 RC2 或非常具体 V. 1.0.0-rc2-3002702 之后,我正在努力部署我的应用程序。我注意到发布目录中的文件夹"approot"不再存在,并且还有"web.cmd"文件。我尝试在IIS上部署它,但我得到的只是找不到"无法访问此站点"的页面。在官方的MS dotnet核心文档网站上,它就像"在你的IIS中创建新网站编辑基本设置,你很高兴......"
我对类似帖子的回答会有所帮助:https://stackoverflow.com/a/37301527/166928
不要像RC1那样将IIS指向wwwroot,而是指向根文件夹。
此外,您的服务器需要具有 DotNetCore.1.0.0.RC2-WindowsHosting.exe
您需要确保尝试部署到的服务器已安装 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=".logsstdout"
forwardWindowsAuthToken="false"/>
</system.webServer>
</configuration>
注意:如果不从 Visual Studio 内部发布,环境变量LAUNCHER_PATH和LAUNCHER_ARGS可能会给您带来一些麻烦。
若要在 Azure VM 上启动并运行 RC2 站点,我必须将该行更改为如下所示:
<aspNetCore processPath="dotnet" arguments="./YourAppEntryPoint.dll"
stdoutLogEnabled="false" stdoutLogFile=".logsstdout"
forwardWindowsAuthToken="false"/>