扩大
缩小
  

Asp.Net Core--发布到IIS

翻译如下:

 

支持的操作系统

  Windows 7及更高版本

  Windows Server 2008 R2及更高版本

  概念上,本文档中描述的IIS配置也适用于在Nano Server IIS上托管ASP.NET Core应用程序,但是请参阅Nano Server上的ASP.NET Core 以获取特定说明。

IIS配置

  启用Web服务器(IIS)服务器角色并建立角色服务。

   Windows桌面操作系统:

  导航到:控制面板>程序>程序和功能>打开或关闭Windows功能(屏幕左侧), 打开Internet信息服务和Web管理工具组。 选中IIS Management Console 的框。 选中World Wide Web Services的框。 接受World Wide Web Services 的默认功能或自定义IIS功能 以满足您的需要。

  Windows Server操作系统:

   对于服务器操作系统,请通过管理菜单或服务器管理器中的链接使用添加角色和功能向导。 在服务器角色步骤中,选中Web服务器(IIS)的框。 

  在“角色服务”步骤上,选择所需的IIS角色服务或接受所提供的默认角色服务。

  

 

  继续执行确认步骤以启用Web服务器角色和服务。

 

安装.NET核心Windows Server主机包

在服务器上安装.NET Core Windows Server Hosting软件包。该包将安装.NET核心运行时,.NET核心库和ASP.NET核心模块。该模块在IIS和Kestrel服务器之间创建反向代理。
重新启动服务器或执行net stop was / y,然后从命令行启动net start w3svc,以检索对系统PATH的更改。
有关ASP.NET核心模块的更多信息,包括模块的配置和使用web.config设置环境变量,使用app_offline.htm挂起请求处理和激活模块日志记录,请参阅ASP.NET核心模块配置参考。

应用程序配置

启用IISIntegration组件
在应用程序依赖项中包含对Microsoft.AspNetCore.Server.IISIntegration软件包的依赖项。通过将.UseIISIntegration()扩展方法添加到WebHostBuilder(),将IIS集成中间件合并到应用程序中。

 

var host = new WebHostBuilder()
  .UseKestrel()
  .UseContentRoot(Directory.GetCurrentDirectory())
  .UseIISIntegration()
  .UseStartup<Startup>()
  .Build();

  

请注意,调用.UseIISIntegration()的代码不会影响代码的可移植性。

为IISIntegration服务设置IISOptions
要配置IISIntegration服务选项,请在ConfigureServices中包含IISOptions的服务配置。

services.Configure<IISOptions>(options => {
  ...
});

  

常见错误

  以下不是完整的错误列表。 如果您遇到此处未列出的错误,请在下面的DISQUS部分留下详细的错误消息(单击显示注释以打开DISQUS面板)。

 

  要诊断IIS部署的问题,请研究浏览器输出,通过事件查看器检查服务器的应用程序日志,并启用模块日志记录。 ASP.NET Core模块日志将在web.config中<aspNetCore>元素的stdoutLogFile属性中提供的路径上找到。 属性值中提供的路径上的任何文件夹必须在部署中存在。 您还必须设置stdoutLogEnabled =“true”以启用模块日志记录。 使用publish-iis工具创建web.config文件的应用程序将默认stdoutLogEnabled设置为false,因此必须手动提供文件或修改文件以启用模块日志记录。

posted @ 2016-10-24 10:19  风筝遇上风  阅读(10905)  评论(0编辑  收藏  举报