[英]Get Current URL as soon as available program.cs / startup.cs in ASP.NET Core
[英]Specifying the url (port) that a asp.net core 1.0 WebAPI.exe should use in program.cs for both prod and dev
我在我的asp.net core 1.0 web api(.NET Framework)program.cs中執行以下操作,以指定我希望我的web api exe運行的端口僅用於開發目的:
public static void Main(string[] args)
{
var host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.UseUrls(new string[1] { "http://*:12012" })
.Build();
host.Run();
}
但是,當我發布到生產時,這行會導致WebAPI出錯,因為我希望exe使用生產web-api url即productionWeb / api / values而不是localhost:12012 / values
無論如何,我可以得到兩個世界中最好的,能夠指定我希望它在端口12012上運行用於開發目的和生產URL用於產品目的嗎?
我目前的解決方案是在發布之前注釋掉該行。
當使用IIS要覆蓋URL中的IIS(ASPNET核心模塊)告訴應用程序通過調用聽.UseUrls()
后.UseIISIntegration()
您應該更改這兩個調用的順序,以便.UseIISIntegration()
在.UseUrl()
。 如果你沒有運行IIS,則.UseIISIntegration()
將不會觸及你設置的網址,因此在開發中你的應用程序仍然會在端口12012上偵聽。當運行IIS時.UseIISIntegration()
會覆蓋url以偵聽端口IIS告訴它聽。 我寫了一篇關於使用IIS和Azure網站運行Asp.NET核心應用程序的文章,該文章解釋了包括這種細微差別在內的工作原理。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.