Serve.Run功能启动和使用方法

一、速通一图流

(缺图,下班了)
Serve.Run功能启动和使用方法_第1张图片

二、六种启动方式

1. 配置默认启动地址/端口

在使用 Furion 框架时,默认的 Web 主机端口为 5000 和 5001。可以通过多种方式自定义启动地址和端口:

1.1 直接在代码中指定端口

可以通过以下代码直接指定端口:

Serve.Run("https://localhost:8080");  // 将 Web 主机配置为在端口 8080 上运行

1.2 通过 RunOptions 配置

使用 RunOptions 配置启动地址和端口:

Serve.Run(RunOptions.Default, "https://localhost:8080");  // 使用默认的 RunOptions 配置,并指定端口 8080

1.3 通过 dotnet run 命令行指定

使用命令行在运行时指定启动地址和端口:

dotnet run --urls https://localhost:8080  // 使用命令行参数指定端口 8080

1.4 通过 ConfigureBuilder 自定义配置

可以通过 ConfigureBuilder 方法来自定义更多的配置选项:

Serve.Run(RunOptions.Default.ConfigureBuilder(builder =>
{
    builder.WebHost.UseUrls("https://localhost:8080");  // 配置 Web 主机使用端口 8080
}));

1.5 通过 JSON 文件配置端口

可以在 JSON 配置文件中指定启动端口:

  • launchSettings.json 中配置:
{
  "profiles": {
    "YourProjectName": {
      "applicationUrl": "https://localhost:8080;http://localhost:8081",  // 指定多个端口,分别为 8080 和 8081
    }
  }
}
  • appsettings.json 中配置:
{
  "Urls": "http://localhost:8081"  // 通过配置文件指定端口 8081
}

1.6 使用随机空闲端口启动

可以让应用在随机的空闲端口上启动:

Serve.Run(urls: Serve.IdleHost.Urls);  // 使用随机的空闲端口启动应用

2. 便捷服务注册

在 Furion 4.8.0+ 版本中,可以通过以下方式注册服务:

2.1 直接注册服务

可以直接在 Serve.Run 方法中注册服务:

Serve.Run(additional: services =>
{
    services.AddRemoteRequest();  // 直接注册远程请求服务
});

2.2 使用泛型主机方式注册服务

可以使用泛型主机的方式来注册服务:

Serve.RunGeneric(services =>
{
    services.AddRemoteRequest();  // 使用泛型主机注册远程请求服务
});

3. 自定义配置

通过 RunOptions 对象,可以自定义和控制服务的配置:

3.1 仅集成 Furion 默认配置

只使用 Furion 的默认配置:

Serve.Run(RunOptions.Default);  // 使用 Furion 的默认配置启动

3.2 配置更多服务和中间件

可以通过 RunOptions 自定义服务和中间件的配置:

Serve.Run(RunOptions.Default
    .ConfigureBuilder(builder =>
    {
        builder.Services.AddControllers().AddInject();  // 添加控制器和依赖注入
    })
    .Configure(app =>
    {
        app.UseRouting();  // 使用路由中间件
        app.UseInject(string.Empty);  // 使用依赖注入中间件
        app.UseEndpoints(endpoints =>
        {
            endpoints.MapControllers();  // 映射控制器路由
        });
    }));

3.3 使用 WebComponent 方式扩展配置

可以通过添加 Web 组件的方式来扩展应用的配置:

Serve.Run(RunOptions.Default.AddWebComponent<XXXWebComponent>());

public class XXXWebComponent : IWebComponent  // 自定义 Web 组件实现
{
    public void Load(WebApplicationBuilder builder, ComponentContext componentContext)
    {
        // 自定义组件加载逻辑
    }
}

4. Serve.Run 和 Startup 最佳组合

为了简化 Program.cs 文件中的配置,Furion 推荐使用组件化启动方式:

4.1 Program.cs 中只需一句话

Program.cs 中使用一句话启动应用:

Serve.Run(RunOptions.Default);  // 使用默认配置启动应用

4.2 在 Startup.cs 中进行服务和中间件配置

通过 Startup.cs 文件进行更详细的服务和中间件配置:

public class Startup : AppStartup  // 定义 Startup 类,继承自 AppStartup
{
    public void ConfigureServices(IServiceCollection services)
    {
        // 配置服务
    }

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        // 配置中间件
    }
}

5. 支持 Furion 的所有功能

5.1 添加 appsettings.json 并读取配置

可以通过 appsettings.json 文件来配置和读取应用的设置:

Serve.Run();  // 启动应用

[DynamicApiController]
public class HelloService
{
    public string Say()
    {
        return "Hello, Furion " + App.Configuration["Logging:LogLevel:Default"];  // 读取配置文件中的日志级别
    }
}

5.2 将控制台项目变为 Web 项目

可以通过修改 .csproj 文件,将控制台项目转换为 Web 项目:

<Project Sdk="Microsoft.NET.Sdk">  // 修改为 Web 项目类型
<Project Sdk="Microsoft.NET.Sdk.Web">  // 通过修改 Sdk 属性,将控制台项目转为 Web 项目

6. RunOptions、LegacyRunOptions 和 GenericRunOptions

Furion 提供了三种方式来配置和启动应用:

6.1 RunOptions

用于创建 Web 主机的推荐方式:

Serve.Run(RunOptions.Default);  // 使用 RunOptions 默认配置启动应用

6.2 LegacyRunOptions

使用传统 Host 方式但默认配置了 Web 主机:

Serve.Run(LegacyRunOptions.Default);  // 使用 LegacyRunOptions 配置启动应用

6.3 GenericRunOptions

用于通用类型主机,适用于 Worker Service:

Serve.Run(GenericRunOptions.Default);  // 使用 GenericRunOptions 启动应用,适用于通用主机

7. 在 WinForm/WPF/Console 中使用 Furion

7.1 WinForm 中初始化

可以在 WinForm 中初始化 Furion 应用:

Serve.RunNative();  // 默认使用端口 5000 启动,可以通过 includeWeb 参数关闭或更改端口

7.2 WPF 中初始化

可以在 WPF 应用中初始化 Furion:

Serve.RunNative();  // 使用默认配置在 WPF 应用中启动 Furion

7.3 Console 中初始化

可以在控制台应用中初始化 Furion:

Serve.RunNative();  // 使用默认配置在控制台应用中启动 Furion

8. 静默启动

8.1 阻塞线程启动

可以以静默模式阻塞线程启动应用:

Serve.Run(silence: true);  // 使用静默模式启动应用,阻塞线程
8.2 使用 RunOptions 配置静默启动

也可以通过 RunOptions 配置静默启动:

Serve.Run(RunOptions.DefaultSilence);  // 使用默认的静默配置启动应用

你可能感兴趣的:(企业级技术,.netcore,asp.net,.net,c#)