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

如何修改CoreWCF项目的监听地址?SoapUI测试显示localhost5203

解决CoreWCF监听地址修改无效的问题

一、ASP.NET Core托管场景(最常见)

CoreWCF在ASP.NET Core环境下托管时,监听地址由ASP.NET Core的服务器配置说了算,别再死磕传统的web.config/wcf.config了,这是多数人踩坑的核心点:

  1. 直接在Program.cs里指定Kestrel配置
    代码示例:
    var builder = WebApplication.CreateBuilder(args);
    // 配置监听地址,下面两种方式二选一
    builder.WebHost.UseKestrel(options =>
    {
        // 方式1:监听所有IP的8080端口(允许局域网/外网访问)
        options.ListenAnyIP(8080);
        // 方式2:指定具体IP和端口
        // options.Listen(IPAddress.Parse("192.168.1.100"), 8080);
    });
    
    // 注册CoreWCF服务
    builder.Services.AddServiceModelServices();
    builder.Services.AddSingleton<IMyService, MyService>();
    
    var app = builder.Build();
    app.UseServiceModel(builder =>
    {
        builder.AddService<MyService>();
        // 这里的"/MyService"是服务端点路径,完整地址是 配置的IP:端口/MyService
        builder.AddServiceEndpoint<MyService, IMyService>(new BasicHttpBinding(), "/MyService");
    });
    
    app.Run();
    
  2. 通过appsettings.json配置
    在appsettings.json里加Kestrel节点,不用改Program.cs也能生效:
    "Kestrel": {
      "Endpoints": {
        "Http": {
          "Url": "http://0.0.0.0:8080"
        }
      }
    }
    

二、控制台自托管场景

如果是控制台跑的CoreWCF服务,直接在宿主初始化时指定BaseAddress:

using CoreWCF;
using CoreWCF.Configuration;

var host = new ServiceHost(typeof(MyService));
// 明确写死监听的IP、端口和服务路径
host.AddServiceEndpoint(typeof(IMyService), new BasicHttpBinding(), "http://192.168.1.100:8080/MyService");

host.Open();
Console.WriteLine("服务已启动,地址:http://192.168.1.100:8080/MyService");
Console.ReadLine();
host.Close();

三、常见问题排查

  • 旧进程没清:修改端口后还是跳旧地址?打开任务管理器杀掉所有dotnet相关进程,再重启服务。
  • SoapUI缓存坑:SoapUI会缓存旧的WSDL地址,直接输入新的服务地址重新导入WSDL就行。
  • 网络权限问题:要让其他机器访问的话,别用localhost当监听地址,换成0.0.0.0或者本机实际IP,同时确保端口没被防火墙拦截。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 21:28:30