Asp.net core使用IIS在windows上进行托管
摘要
最近項目中,嘗試使用asp.net core開發,在部署的時候,考慮現有硬件,只能部署在windows上,linux服務器暫時沒有。
部署注意事項
代碼中啟用iis和Kestrel
public class Program{public static void Main(string[] args){BuildWebHost(args).Run();}public static IWebHost BuildWebHost(string[] args) =>WebHost.CreateDefaultBuilder(args).UseKestrel() .UseContentRoot(Directory.GetCurrentDirectory()).UseIISIntegration().UseStartup<Startup>().UseApplicationInsights().Build();}在服務端安裝
?.NET Core Windows Server 托管捆綁包
捆綁包可安裝 .NET Core 運行時、.NET Core 庫和?ASP.NET Core 模塊。?該模塊創建 IIS 與 Kestrel 服務器之間的反向代理。?如果系統沒有 Internet 連接,請先獲取并安裝?Microsoft Visual C++ 2015 Redistributable,再安裝 .NET Core Windows Server 托管捆綁包。
?
重啟系統,或從命令提示符處依次執行 net stop was /y 和 net start w3svc。?重新啟動 IIS 將選取安裝程序對系統 PATH 所作的更改。
發布
使用vs發布或者使用命令,這里由于使用vs2017開發,就直接用vs發布了
在服務端新建站點
修改應用池CLR為No Managed Code
可以下面新建子站點test
確認進程模型標識擁有適當的權限。
如果將應用池的默認標識(“進程模型” > “標識”)從 ApplicationPoolIdentity 更改為另一標識,請驗證新標識擁有所需的權限,可訪問應用的文件夾、數據庫和其他所需資源。例如,應用池需要對文件夾的讀取和寫入權限,以便應用在其中讀取和寫入文件。
?常見錯誤
如果通過ip和端口訪問,報500錯誤,但在服務器上 通過dotnet \xxxxx.dll可以啟動kestrel,并可以通過http:\\localhost:5000進行訪問,一般可以通過修改站點目錄權限進行解決。至少可以讀寫的權限。
其他錯誤,可以參考
https://docs.microsoft.com/zh-cn/aspnet/core/host-and-deploy/iis/troubleshoot
轉載于:https://www.cnblogs.com/wolf-sun/p/8583772.html
總結
以上是生活随笔為你收集整理的Asp.net core使用IIS在windows上进行托管的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PHP获取IP的多种方式解析
- 下一篇: Caused by: java.lang