在使用 Furion 框架时,默认的 Web 主机端口为 5000 和 5001。可以通过多种方式自定义启动地址和端口:
可以通过以下代码直接指定端口:
Serve.Run("https://localhost:8080"); // 将 Web 主机配置为在端口 8080 上运行
RunOptions
配置使用 RunOptions
配置启动地址和端口:
Serve.Run(RunOptions.Default, "https://localhost:8080"); // 使用默认的 RunOptions 配置,并指定端口 8080
dotnet run
命令行指定使用命令行在运行时指定启动地址和端口:
dotnet run --urls https://localhost:8080 // 使用命令行参数指定端口 8080
ConfigureBuilder
自定义配置可以通过 ConfigureBuilder
方法来自定义更多的配置选项:
Serve.Run(RunOptions.Default.ConfigureBuilder(builder =>
{
builder.WebHost.UseUrls("https://localhost:8080"); // 配置 Web 主机使用端口 8080
}));
可以在 JSON 配置文件中指定启动端口:
launchSettings.json
中配置:{
"profiles": {
"YourProjectName": {
"applicationUrl": "https://localhost:8080;http://localhost:8081", // 指定多个端口,分别为 8080 和 8081
}
}
}
appsettings.json
中配置:{
"Urls": "http://localhost:8081" // 通过配置文件指定端口 8081
}
可以让应用在随机的空闲端口上启动:
Serve.Run(urls: Serve.IdleHost.Urls); // 使用随机的空闲端口启动应用
在 Furion 4.8.0+ 版本中,可以通过以下方式注册服务:
可以直接在 Serve.Run
方法中注册服务:
Serve.Run(additional: services =>
{
services.AddRemoteRequest(); // 直接注册远程请求服务
});
可以使用泛型主机的方式来注册服务:
Serve.RunGeneric(services =>
{
services.AddRemoteRequest(); // 使用泛型主机注册远程请求服务
});
通过 RunOptions
对象,可以自定义和控制服务的配置:
只使用 Furion 的默认配置:
Serve.Run(RunOptions.Default); // 使用 Furion 的默认配置启动
可以通过 RunOptions
自定义服务和中间件的配置:
Serve.Run(RunOptions.Default
.ConfigureBuilder(builder =>
{
builder.Services.AddControllers().AddInject(); // 添加控制器和依赖注入
})
.Configure(app =>
{
app.UseRouting(); // 使用路由中间件
app.UseInject(string.Empty); // 使用依赖注入中间件
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers(); // 映射控制器路由
});
}));
可以通过添加 Web 组件的方式来扩展应用的配置:
Serve.Run(RunOptions.Default.AddWebComponent<XXXWebComponent>());
public class XXXWebComponent : IWebComponent // 自定义 Web 组件实现
{
public void Load(WebApplicationBuilder builder, ComponentContext componentContext)
{
// 自定义组件加载逻辑
}
}
为了简化 Program.cs
文件中的配置,Furion 推荐使用组件化启动方式:
在 Program.cs
中使用一句话启动应用:
Serve.Run(RunOptions.Default); // 使用默认配置启动应用
Startup.cs
中进行服务和中间件配置通过 Startup.cs
文件进行更详细的服务和中间件配置:
public class Startup : AppStartup // 定义 Startup 类,继承自 AppStartup
{
public void ConfigureServices(IServiceCollection services)
{
// 配置服务
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
// 配置中间件
}
}
appsettings.json
并读取配置可以通过 appsettings.json
文件来配置和读取应用的设置:
Serve.Run(); // 启动应用
[DynamicApiController]
public class HelloService
{
public string Say()
{
return "Hello, Furion " + App.Configuration["Logging:LogLevel:Default"]; // 读取配置文件中的日志级别
}
}
可以通过修改 .csproj
文件,将控制台项目转换为 Web 项目:
<Project Sdk="Microsoft.NET.Sdk"> // 修改为 Web 项目类型
<Project Sdk="Microsoft.NET.Sdk.Web"> // 通过修改 Sdk 属性,将控制台项目转为 Web 项目
Furion 提供了三种方式来配置和启动应用:
RunOptions
用于创建 Web 主机的推荐方式:
Serve.Run(RunOptions.Default); // 使用 RunOptions 默认配置启动应用
LegacyRunOptions
使用传统 Host
方式但默认配置了 Web 主机:
Serve.Run(LegacyRunOptions.Default); // 使用 LegacyRunOptions 配置启动应用
GenericRunOptions
用于通用类型主机,适用于 Worker Service:
Serve.Run(GenericRunOptions.Default); // 使用 GenericRunOptions 启动应用,适用于通用主机
可以在 WinForm 中初始化 Furion 应用:
Serve.RunNative(); // 默认使用端口 5000 启动,可以通过 includeWeb 参数关闭或更改端口
可以在 WPF 应用中初始化 Furion:
Serve.RunNative(); // 使用默认配置在 WPF 应用中启动 Furion
可以在控制台应用中初始化 Furion:
Serve.RunNative(); // 使用默认配置在控制台应用中启动 Furion
可以以静默模式阻塞线程启动应用:
Serve.Run(silence: true); // 使用静默模式启动应用,阻塞线程
RunOptions
配置静默启动也可以通过 RunOptions
配置静默启动:
Serve.Run(RunOptions.DefaultSilence); // 使用默认的静默配置启动应用