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