如何在 IIS 中将 ASP.NET 核心目标 net452 项目部署为网站的 IIS 应用程序
How to deploy an ASP.NET Core targetting net452 project as an IIS application of a Web Site in IIS
我想将针对 net452 的 ASP.NET Core RTM Web 应用程序部署到 IIS 应用程序而不是 IIS 网站。我正在使用 IIS 10 (windows 10)
我之前有一个 ASP.net 5 RC1
项目,并使用描述的方法 here and here
将其部署到 IIS 中的 IIS 应用程序文件夹
我需要 运行 该网站作为我网站下的应用程序,例如http://locahost/mysite 在 IIS 中,我在 RC1 中通过将以下代码行添加到我的 Startup.cs
中的 Configure
方法来实现这一点
app.Map("/MyApplication", (app1) => this.Configure1(app1, env, loggerFactory));
在我将我的项目转换为 ASP.net 核心后,它可以 运行 在 Visual Studio 中成功,但是当我访问 URLhttp://localhost/mysite
我已确保在 ASP.NET documentation website 代码中拥有我需要的一切,关于如何将 ASP.NET Core 部署到 IIS,包括安装安装程序和执行 iireset
。
但是在按照设置所需的一切进行操作后,我得到了相同的空白屏幕。
现在我卡住了。
然后我启用了日志记录。当我在我的 web.config
中启用登录时,当我尝试访问我的网站时得到以下信息
info: Microsoft.Extensions.DependencyInjection.DataProtectionServices[0]
User profile not available. Using 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ASP.NET.0.30319.0\AutoGenKeys\S<removed>\DataProtection' as key repository and Windows DPAPI to encrypt keys at rest.
Hosting environment: Production
Content root path: C:\mydeployfolder
Now listening on: http://localhost:8305/mysite
Application started. Press Ctrl+C to shut down.
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[1]
Request starting HTTP/1.1 GET http://localhost/mysite
从上面你可以看到它被拾取我在我的浏览器中输入 url,并创建了一个日志条目但是浏览器中的最终结果仍然是一个空白页面。
然后我从头开始阅读日志,出于某种或其他原因,它正在侦听端口 8308 而不是端口 80。所以我在浏览器中输入 http://localhost:8305/mysite
,我在日志中得到以下内容
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[1]
Request starting HTTP/1.1 GET http://localhost:8305/mars
fail: Microsoft.AspNetCore.Server.IISIntegration.IISMiddleware[0]
'MS-ASPNETCORE-TOKEN' does not match the expected pairing token '<removed>', request rejected.
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[2]
Request finished in 0.9426ms 400
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[1]
Request starting HTTP/1.1 GET http://localhost:8305/favicon.ico
fail: Microsoft.AspNetCore.Server.IISIntegration.IISMiddleware[0]
'MS-ASPNETCORE-TOKEN' does not match the expected pairing token '52561883-06a6-46ce-b8dc-5daadb6e83c0', request rejected.
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[2]
Request finished in 0.7004ms 400
仍然是空白页。
我只想托管以 IIS 为目标的 Web 应用程序,之前是在 ASP.NET 5 RC 中完成的。我在 ASP.NET Core 中做错了什么,还是不可能了?
app.Map("/MyApplication", (app1) => this.Configure1(app1, env, loggerFactory));
ASP.NET 核心 RC2 或 RTM 中不再需要解决方法,而 RC1
中需要解决方法
我想将针对 net452 的 ASP.NET Core RTM Web 应用程序部署到 IIS 应用程序而不是 IIS 网站。我正在使用 IIS 10 (windows 10)
我之前有一个 ASP.net 5 RC1
项目,并使用描述的方法 here and here
我需要 运行 该网站作为我网站下的应用程序,例如http://locahost/mysite 在 IIS 中,我在 RC1 中通过将以下代码行添加到我的 Startup.cs
Configure
方法来实现这一点
app.Map("/MyApplication", (app1) => this.Configure1(app1, env, loggerFactory));
在我将我的项目转换为 ASP.net 核心后,它可以 运行 在 Visual Studio 中成功,但是当我访问 URLhttp://localhost/mysite
我已确保在 ASP.NET documentation website 代码中拥有我需要的一切,关于如何将 ASP.NET Core 部署到 IIS,包括安装安装程序和执行 iireset
。
现在我卡住了。
然后我启用了日志记录。当我在我的 web.config
中启用登录时,当我尝试访问我的网站时得到以下信息
info: Microsoft.Extensions.DependencyInjection.DataProtectionServices[0]
User profile not available. Using 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ASP.NET.0.30319.0\AutoGenKeys\S<removed>\DataProtection' as key repository and Windows DPAPI to encrypt keys at rest.
Hosting environment: Production
Content root path: C:\mydeployfolder
Now listening on: http://localhost:8305/mysite
Application started. Press Ctrl+C to shut down.
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[1]
Request starting HTTP/1.1 GET http://localhost/mysite
从上面你可以看到它被拾取我在我的浏览器中输入 url,并创建了一个日志条目但是浏览器中的最终结果仍然是一个空白页面。
然后我从头开始阅读日志,出于某种或其他原因,它正在侦听端口 8308 而不是端口 80。所以我在浏览器中输入 http://localhost:8305/mysite
,我在日志中得到以下内容
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[1]
Request starting HTTP/1.1 GET http://localhost:8305/mars
fail: Microsoft.AspNetCore.Server.IISIntegration.IISMiddleware[0]
'MS-ASPNETCORE-TOKEN' does not match the expected pairing token '<removed>', request rejected.
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[2]
Request finished in 0.9426ms 400
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[1]
Request starting HTTP/1.1 GET http://localhost:8305/favicon.ico
fail: Microsoft.AspNetCore.Server.IISIntegration.IISMiddleware[0]
'MS-ASPNETCORE-TOKEN' does not match the expected pairing token '52561883-06a6-46ce-b8dc-5daadb6e83c0', request rejected.
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[2]
Request finished in 0.7004ms 400
仍然是空白页。
我只想托管以 IIS 为目标的 Web 应用程序,之前是在 ASP.NET 5 RC 中完成的。我在 ASP.NET Core 中做错了什么,还是不可能了?
app.Map("/MyApplication", (app1) => this.Configure1(app1, env, loggerFactory));
ASP.NET 核心 RC2 或 RTM 中不再需要解决方法,而 RC1
中需要解决方法