You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Blazor Server添加WCF NetTcp监听端口未生效及调用报错问题咨询

解决Blazor Server中CoreWCF NetTcp端口未监听的问题

问题根源

你的代码存在几个关键问题:

  • 缺少CoreWCF NetTcp传输的依赖组件,导致NetTcp绑定无法正常生效
  • 错误尝试手动调用serviceBuilder.OpenAsync()——CoreWCF会随Blazor Server主机自动启动,手动调用会打破配置生命周期,触发状态错误
  • 代码存在拼写错误:AddServerSizeBlazor应为AddServerSideBlazor(虽不影响WCF功能,但建议修正)

修复步骤

  1. 安装CoreWCF.NetTcp依赖包
    NetTcp绑定需要单独的NuGet包支持,在项目中执行以下命令安装:
dotnet add package CoreWCF.NetTcp

或通过NuGet包管理器搜索安装CoreWCF.NetTcp。

  1. 修正Program.cs配置
    无需手动调用OpenAsync(),CoreWCF会由ASP.NET Core主机自动托管启动。修正后的完整代码如下:
var builder = WebApplication.CreateBuilder(args);

// 修正拼写错误
builder.Services.AddRazorPages();
builder.Services.AddServerSideBlazor();
builder.Services.AddSingleton<WeatherForecastService>();

// 注册CoreWCF服务及契约实现
builder.Services.AddServiceModelServices()
                .AddTransient<IContractExchange, ContractExchange>();
// 添加NetTcp传输支持
builder.Services.AddServiceModelNetTcpBinding();

var app = builder.Build();

// 配置CoreWCF端点
app.UseServiceModel(serviceBuilder =>
{
    serviceBuilder.AddService<ContractExchange>(serviceOptions => 
    {
        serviceOptions.DebugBehavior.IncludeExceptionDetailInFaults = true;
    });
    serviceBuilder.AddServiceEndpoint<ContractExchange, IContractExchange>(
        new NetTcpBinding(), 
        "net.tcp://127.0.0.1:21701/Endpoint"
    );
});

// Blazor常规中间件配置
if (!app.Environment.IsDevelopment())
{
    app.UseExceptionHandler("/Error");
    app.UseHsts();
}

app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();

app.MapBlazorHub();
app.MapFallbackToPage("/_Host");

app.Run();

验证端口监听

启动应用后,用以下命令检查端口是否正常监听:

  • PowerShell命令:
Get-NetTCPConnection -LocalPort 21701
  • CMD命令:
netstat -an | findstr 21701

关键说明

  • CoreWCF的服务生命周期完全由ASP.NET Core主机管理,无需手动控制启动/关闭
  • 必须通过AddServiceModelNetTcpBinding()注册NetTcp传输的底层服务
  • 确保你的IContractExchange契约已正确标记[ServiceContract]特性,操作方法标记[OperationContract]特性

内容的提问来源于stack exchange,提问作者Marcin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 22:09:24