指定asp.net核心1.0 WebAPI.exe应该在program.cs中为prod和dev使用的url(端口)
我在我的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() .UseUrls(new string[1] { "http://*:12012" }) .Build(); host.Run(); }
但是,当我发布到生产时,这行会导致WebAPI出错,因为我希望exe使用生产web-api url即productionWeb / api / values而不是localhost:12012 / values
无论如何,我可以得到两个世界中最好的能够指定我希望它在端口12012上运行以用于开发目的和生产URL用于产品目的吗?
我目前的解决方案是在发布之前注释掉该行。
使用IIS时,您正在覆盖IIS(AspNet核心模块)通过.UseUrls()
之后调用.UseUrls()
来监听应用程序的URL。 您应该更改这两个调用的顺序,以便.UseIISIntegration()
在.UseUrl()
。 如果你没有运行IIS,则.UseIISIntegration()
不会触及你设置的URL,因此在开发中你的应用程序仍然会在端口12012上侦听。当运行IIS时.UseIISIntegration()
会覆盖url以侦听端口IIS告诉它听。 我写了一篇关于使用IIS和Azure网站运行Asp.NET核心应用程序的post,该文章解释了这些细微的工作方式。
- 无法从GridView中的行/单元格中获取值
- 使用Selenium在现有浏览器会话中打开一个新选项卡
- 如何处理ASP MVC中的重复表单字段
- SelectedValues在MultiSelectList mvc中不起作用
- 在Switch语句中使用.StartsWith?
- 如何使用其应用程序打开文件(该文件不存在于Web服务器中)?
- 在asp.net中动态加载css?
- 为什么在使用带有ASP.Net Identity的ApplicationCookie之前调用SignOut(DefaultAuthenticationTypes.ExternalCookie)?
- 如何在ASP.NET DataRepeater控件中执行条件逻辑?