调用net.tcp协议WCF服务失败,请求技术支持
我来帮你一步步排查这个Net.TCP连接被拒绝的问题,这类问题通常和绑定配置、系统服务或者功能安装不完整有关,咱们逐个解决:
解决方案:WCF Net.TCP连接错误10061及缺失服务修复
1. 先确认IIS中Net.TCP绑定的配置是否正确
- 打开IIS管理器,找到承载
Calculator.svc的目标网站 - 右键站点 → 编辑绑定,确认已添加
Net.TCP类型的绑定,端口需设为53201,绑定信息格式应为53201:* - 检查对应应用程序池的高级设置,确保「启用32位应用程序」选项和你的服务编译平台匹配(若服务是32位编译,这里需设为
True)
2. 验证Net.TCP核心系统服务是否运行
错误10061大概率是Net.TCP相关服务未启动:
- 按
Win+R输入services.msc打开服务列表 - 找到Net.TCP Port Sharing Service,确认状态为「正在运行」,启动类型设为「自动」
- 如果该服务不在列表中,说明WCF功能未完整安装,需要执行下一步修复
3. 重新完整安装WCF相关功能(修复缺失服务)
你之前的PowerShell脚本可能遗漏了部分组件,试试用以下命令重新安装所有WCF核心功能:
# 先卸载已安装的WCF组件 Uninstall-WindowsFeature -Name NET-WCF-Services45, NET-WCF-TCP-PortSharing45, NET-WCF-HTTP-Activation45, NET-WCF-TCP-Activation45, NET-WCF-Pipe-Activation45 # 重新安装完整的WCF服务及管理工具 Install-WindowsFeature -Name NET-WCF-Services45 -IncludeAllSubFeature -IncludeManagementTools
执行完成后重启电脑,再检查服务列表里的Net.TCP相关服务是否出现。
4. 检查端口53201是否被占用
有时候目标端口可能被其他程序抢占:
- 打开管理员权限的命令提示符,运行:
netstat -ano | findstr :53201
如果有返回结果,记下对应的PID,打开任务管理器→详细信息,找到该PID的进程并结束,或者更换WCF服务的端口。
5. 确认IIS的Net.TCP激活组件已启用
- 打开控制面板→程序→程序和功能→启用或关闭Windows功能
- 展开
Microsoft .NET Framework 4.8(或你使用的.NET版本)→WCF服务,确保以下选项全部勾选:- HTTP激活
- TCP激活
- TCP端口共享
- 命名管道激活
- 点击「确定」完成安装后,运行
iisreset命令重启IIS
6. 验证服务端点配置是否正确
打开WCF服务的web.config文件,检查endpoint节点:
- 确保
binding属性为netTcpBinding,baseAddress和你请求的地址net.tcp://localhost:53201/Calculator.svc完全一致 - 示例正确配置片段:
<system.serviceModel> <services> <service name="CalculatorService"> <host> <baseAddresses> <add baseAddress="net.tcp://localhost:53201/Calculator.svc" /> </baseAddresses> </host> <endpoint address="" binding="netTcpBinding" contract="ICalculator" /> <endpoint address="mex" binding="mexTcpBinding" contract="IMetadataExchange" /> </service> </services> </system.serviceModel>
内容的提问来源于stack exchange,提问作者lissajous
相关产品推荐
相关产品推荐

