1、安装IIS 这里就不详说了
2、安装 WindowsHosting
ASP.NET Core与经典ASP.NET应用程序完全不同,它并不是运行在IIS的工作进程中,而是独立运行的。它独立运行在控制台应用程序中,并通过dotnet运行时命令调用。它并没有被加载到IIS工作进程中,但是IIS却加载了名为AspNetCoreModule的本地Module,这个Module用于执行外部的控制台程序。
AspNetCoreModule是作为ASP.NET Core Server Hosting Bundle的一部分被安装在服务器上的。.NET Core Windows Server Hosting
安装完之后IIS 的模块里会出现 AspNetCoreModule
3、IIS里创建站点,站点绑定的应用程序池设置为“无托管代码”
这里IIS站点(虚拟目录)仍然需要配一个IIS应用程序池,不过这个应用程序池应当使用No Managed Code。这里应用程序池仅仅作为前置代理接受请求,所以它不用实例化.NET运行了。
4、VS 里在Properties下新建文件夹PublishProfiles ,再新建文件<Project>.pubxml
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<WebPublishMethod>MSDeploy</WebPublishMethod>
<LastUsedBuildConfiguration>Debug</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<SiteUrlToLaunchAfterPublish>http://www.MyNETCore.com/FirstNetCore/</SiteUrlToLaunchAfterPublish>
<LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
<ExcludeApp_Data>False</ExcludeApp_Data>
<PublishFramework>netcoreapp1.1</PublishFramework>
<UsePowerShell>True</UsePowerShell>
<EnableMSDeployAppOffline>True</EnableMSDeployAppOffline>
<MSDeployServiceURL></MSDeployServiceURL>
<DeployIisAppPath>NetCore/FirstNetCore</DeployIisAppPath>
<RemoteSitePhysicalPath />
<SkipExtraFilesOnServer>True</SkipExtraFilesOnServer>
<MSDeployPublishMethod>InProc</MSDeployPublishMethod>
<EnableMSDeployBackup>False</EnableMSDeployBackup>
<UserName>username</UserName>
<_SavePWD>True</_SavePWD>
<ADUsesOwinOrOpenIdConnect>False</ADUsesOwinOrOpenIdConnect>
<AuthType>NTLM</AuthType>
<ProjectGuid>a03b5ea4-f1d5-4626-8403-c3e1ce66918d</ProjectGuid>
</PropertyGroup>
</Project>
这样在项目的发布里可看到如下配置,可继续设置对应值
DeployIisAppPath,MSDeployServiceURL,SiteUrlToLaunchAfterPublish设置成对应值即可
点击发布,即可使用IIS访问
问题:这种情况只能发布之后IIS才会生效,不是编译之后立即生效
附官网说明:https://docs.microsoft.com/en-us/aspnet/core/publishing/iis
2017-04-14