概述
從 ASP.NET Core 1.0.0 開始辑莫,Web應(yīng)用的發(fā)布支持跨平臺(tái),不再依賴 Windows+IIS 服務(wù)器罩引,官方建議的方式是始終使用 ASP.NET Core 自帶的 Kestrel 服務(wù)器運(yùn)行 Web 應(yīng)用各吨,使用 IIS(Windows Server)或 NGINX(Linux Server)服務(wù)器反向代理到 Kestrel 服務(wù)器上。以下是 Windows 服務(wù)器發(fā)布 ASP.NET Core 應(yīng)用到 IIS 的詳細(xì)步驟蜒程。注意目前 ASP.NET Core 應(yīng)用只支持 Windows 7 和 Windows Server 2008 R2及更新版本的系統(tǒng)绅你。
發(fā)布步驟
- 從官網(wǎng)上下載 ASP.NET Core Module 模塊并安裝到服務(wù)器上
- 命令行中執(zhí)行
iisreset
重啟 IIS 服務(wù)器 - 新建目錄用于發(fā)布應(yīng)用,比如:
d:\websites\demo
- 在 IIS 上添加網(wǎng)站 demo 端口為
8080
昭躺,物理路徑選擇剛才新建的d:\websites\demo
- 設(shè)置上一步創(chuàng)建的應(yīng)用程序池 demo 為
無(wú)托管模式
- 將 ASP.NET Core 項(xiàng)目 demo 發(fā)布的所有文件通過(guò) FTP 拷貝到服務(wù)器的
d:\websites\demo
目錄 - 打開命令行使用一下命令測(cè)試應(yīng)用是否啟動(dòng)正常
dotnet demo.dll
- 關(guān)閉命令行忌锯,啟動(dòng)瀏覽器訪問(wèn)
http://localhost:8080
一起正常
注意事項(xiàng)
- IIS只是一個(gè)反向代理服務(wù)器,并不會(huì)真正處理任何請(qǐng)求领炫,所有請(qǐng)求都會(huì)轉(zhuǎn)發(fā)給 Kestrel 服務(wù)器來(lái)處理偶垮,指定的物理路徑是為了使用該路徑下的 web.config 文件以確定要啟動(dòng)的進(jìn)程路徑、參數(shù)和日志文件路徑等信息帝洪。當(dāng)?shù)谝淮握?qǐng)求
http://localhost:8080
地址時(shí)似舵,如果反向代理指定的站點(diǎn)沒(méi)有啟動(dòng),IIS 則通過(guò)調(diào)用web.config文件中的命令(dotnet demo.dll
)來(lái)啟動(dòng)進(jìn)程葱峡,該進(jìn)程負(fù)責(zé)啟動(dòng)并運(yùn)行 demo 網(wǎng)站砚哗。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<!--
Configure your application settings in appsettings.json. Learn more at http://go.microsoft.com/fwlink/?LinkId=786380
-->
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet" arguments=".\demo.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false" />
</system.webServer>
</configuration>
<!--ProjectGuid: feb38ee8-0487-4bc1-a3ee-71fda1912cff-->
深入閱讀
以下鏈接中有更深入的閱讀,如果需要請(qǐng)移步鏈接 RUNNING ASP.NET CORE APPLICATIONS WITH IIS AND ANTARES (AZURE WEBSITES) 砰奕。