Dre*_*kes 137 .net asp.net-core
当使用WebHostBuilder在一个Main入口点,我怎么可以指定它绑定到端口?
默认情况下,它使用5000.
请注意,此问题特定于新的ASP.NET Core API(当前位于1.0.0-RC2中).
Kév*_*let 174
你可以用UseUrls它:
public class Program
{
public static void Main(string[] args)
{
var host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.UseUrls("http://localhost:5001/")
.Build();
host.Run();
}
}
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用配置堆栈配置服务器地址.以下是如何使用命令行参数来传递所需的地址:
public class Program
{
public static void Main(string[] args)
{
var configuration = new ConfigurationBuilder()
.AddCommandLine(args)
.Build();
var host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseConfiguration(configuration)
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
host.Run();
}
}
dotnet run --urls=http://localhost:5001/
Run Code Online (Sandbox Code Playgroud)
Cas*_*sey 47
通过VS docker集成帮助任何人这样做的后续回答.我需要更改到端口8080以使用google appengine中的"灵活"环境运行.
您需要在Dockerfile中使用以下内容:
ENV ASPNETCORE_URLS=http://+:8080
EXPOSE 8080
Run Code Online (Sandbox Code Playgroud)
你还需要修改docker-compose.yml中的端口:
ports:
- "8080"
Run Code Online (Sandbox Code Playgroud)
men*_*xin 45
您可以将Kestrel部分插入asp.net core 2.1+ appsettings.json文件中。
"Kestrel": {
"EndPoints": {
"Http": {
"Url": "http://0.0.0.0:5002"
}
}
},
Run Code Online (Sandbox Code Playgroud)
Den*_*nis 29
替代解决方案是hosting.json在项目的根目录中使用a .
{
"urls": "http://localhost:60000"
}
Run Code Online (Sandbox Code Playgroud)
然后在 Program.cs
public static void Main(string[] args)
{
var config = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("hosting.json", true)
.Build();
var host = new WebHostBuilder()
.UseKestrel(options => options.AddServerHeader = false)
.UseConfiguration(config)
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
host.Run();
}
Run Code Online (Sandbox Code Playgroud)
Ran*_*dom 28
您可以指定托管网址,而无需对应用进行任何更改.
Properties/launchSettings.json在项目目录中创建一个文件,并用以下内容填充:
{
"profiles": {
"MyApp1-Dev": {
"commandName": "Project",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
"applicationUrl": "http://localhost:5001/"
}
}
}
Run Code Online (Sandbox Code Playgroud)
dotnet run命令应该选择您的launchSettings.json文件并将其显示在控制台中:
C:\ProjectPath [master ?]
? dotnet run
Using launch settings from C:\ProjectPath\Properties\launchSettings.json...
Hosting environment: Development
Content root path: C:\ProjectPath
Now listening on: http://localhost:5001
Application started. Press Ctrl+C to shut down.
Run Code Online (Sandbox Code Playgroud)
更多细节:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/environments
jab*_*ong 24
如果使用 dotnet run
dotnet run --urls="http://localhost:5001"
Run Code Online (Sandbox Code Playgroud)
R. *_*sen 12
托管在docker容器中时(对我来说是Linux版本),您可能会收到"Connection Refused"消息.在这种情况下,您可以使用IP地址0.0.0.0,这意味着"此计算机上的所有IP地址"而不是localhost环回来修复端口转发.
public class Program
{
public static void Main(string[] args)
{
var host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.UseUrls("http://0.0.0.0:5000/")
.Build();
host.Run();
}
}
Run Code Online (Sandbox Code Playgroud)
oud*_*udi 12
在.net core 2.2之上,方法Main通过WebHost.CreateDefaultBuilder(args)支持args。
public class Program
{
public static void Main(string[] args)
{
CreateWebHostBuilder(args).Build().Run();
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>();
}
Run Code Online (Sandbox Code Playgroud)
您可以构建项目并bin像这样运行命令
dotnet <yours>.dll --urls=http://localhost:5001
Run Code Online (Sandbox Code Playgroud)
或带有多个网址
dotnet <yours>.dll --urls="http://localhost:5001,https://localhost:5002"
Run Code Online (Sandbox Code Playgroud)
Ern*_*est 11
在 .Net Core 3.1 上,只需按照 Microsoft Doc 操作即可,这非常简单:kestrel-aspnetcore-3.1
总结一下:
将以下 ConfigureServices 部分添加到 CreateDefaultBuilder 上Program.cs:
// using Microsoft.Extensions.DependencyInjection;
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureServices((context, services) =>
{
services.Configure<KestrelServerOptions>(
context.Configuration.GetSection("Kestrel"));
})
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
Run Code Online (Sandbox Code Playgroud)将以下基本配置添加到appsettings.json文件(Microsoft 文章中的更多配置选项):
"Kestrel": {
"EndPoints": {
"Http": {
"Url": "http://0.0.0.0:5002"
}
}
}
Run Code Online (Sandbox Code Playgroud)在您的项目 Publish/Debug/Release binaries 文件夹中打开 CMD 或 Console 并运行:
dotnet YourProject.dll
Run Code Online (Sandbox Code Playgroud)享受在您的http://localhost:5002浏览您的站点/api
转到properties/launchSettings.json并找到您的应用程序名称,然后在其下找到applicationUrl。你会看到,它正在运行 localhost:5000,将其更改为你想要的任何值。然后运行 dotnet run......万岁
或者,您可以通过命令行运行应用程序来指定端口。
只需运行命令:
dotnet run --server.urls http://localhost:5001
Run Code Online (Sandbox Code Playgroud)
注意:其中 5001 是您要运行的端口。
| 归档时间: |
|
| 查看次数: |
110219 次 |
| 最近记录: |