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