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

.NET调试模式下启动服务触发SocketException异常求助

解决.NET服务调试时SocketException的思路

你遇到的SocketException核心原因是端口被占用(从异常信息“Only one usage of each socket address (protocol/network address/port) is normally permitted”可判断),以下是具体排查和解决步骤:

  • 检查端口占用情况

    • Windows系统:打开命令提示符,执行命令 netstat -ano | findstr :<你的服务端口号>,找到占用端口的PID,然后在任务管理器中结束对应进程。
    • Linux/macOS系统:执行命令 lsof -i :<你的服务端口号>,找到进程后用 kill -9 <PID> 终止进程。
  • 确认服务端口配置

    • 检查appsettings.json中的Urls配置项,确认是否指定了已被占用的端口;
    • 查看CreateWebHostBuilder方法内是否通过UseUrls硬编码了端口,是否存在重复绑定的情况。
  • 清理残留调试进程

    • 在Visual Studio调试时,有时之前的服务进程未完全退出,打开任务管理器找到所有dotnet.exe或你的服务进程,全部终止后重新启动调试。
  • 临时更换端口测试

    • 修改appsettings.json中的端口号,或者在CreateWebHostBuilder中临时指定新端口,比如:
      CreateWebHostBuilder(args, null).UseUrls("http://localhost:5002").Build();
      

    重新启动服务,若不再报错,说明原端口确实被占用。

  • 非Windows系统权限检查

    • 如果是Linux/macOS环境,若服务使用了1024以下的端口,需要以root权限启动(执行sudo dotnet run),或者更换为1024以上的端口。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 19:22:04