TCP错误代码10061:无法建立连接,因为目标机器主动拒绝它 127.0.0.1:8732
Posted
技术标签:
【中文标题】TCP错误代码10061:无法建立连接,因为目标机器主动拒绝它 127.0.0.1:8732【英文标题】:TCP error code 10061: No connection could be made because the target machine actively refused it 127.0.0.1:8732 【发布时间】:2014-09-20 06:20:54 【问题描述】:我有一个使用 Windows 服务的 wcf 服务应用程序。此外,我有一个连接到 wcf 服务的 wpf 应用程序。我一直无法打开 wpf 程序。这是我尝试通过在调试模式下按 F5 从 Visual Studio 打开 wpf 应用程序时遇到的错误:
mscorlib.dll but was not handled in user code
Additional information: Could not connect to net.tcp://localhost:8732/Design_Time_Addresses/NextGenService/SimSession/. The connection attempt lasted for a time span of 00:00:02.2590000. TCP error code 10061: No connection could be made because the target machine actively refused it 127.0.0.1:8732.
我确实在所选功能的 wcf 激活节点下同时启用了 Http 和 Non-http 激活选项。与 net.tcp 相关的所有 3 个服务都在运行:Net Pipe Listener Adapter、Net.Tcp Listener Adapter、Net.Tcp Port Sharing Service。
服务器的app.config:
<?xml version="1.0"?>
<configuration>
<appSettings>
<add key="logFile" value="C:\ProgramData\SimSci\Log\server.log"/>
<add key="SecureFolder" value="..\..\..\..\..\SharedComponents"/>
<!--<add key="logLevel" value="Debug"/>-->
<!--<add key="VariableConnection" value="Connected"/>-->
</appSettings>
<system.diagnostics>
<sources>
<!--Add below switch when need trace on developer system -->
<!--switchValue="Warning, ActivityTracing"-->
<source name="System.ServiceModel.MessageLogging" switchValue="Off">
<listeners>
<add type="System.Diagnostics.DefaultTraceListener" name="Default">
<filter type=""/>
</add>
<add name="ServiceModelMessageLoggingListener">
<filter type=""/>
</add>
</listeners>
</source>
<!--Add below switch when need trace on developer system -->
<!--switchValue="Warning, ActivityTracing"-->
<source name="System.ServiceModel" switchValue="Off" propagateActivity="true">
<listeners>
<add type="System.Diagnostics.DefaultTraceListener" name="Default">
<filter type=""/>
</add>
<add name="ServiceModelTraceListener">
<filter type=""/>
</add>
</listeners>
</source>
</sources>
<sharedListeners>
<add initializeData="..\..\app_messages.svclog" type="System.Diagnostics.XmlWriterTraceListener, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" name="ServiceModelMessageLoggingListener" traceOutputOptions="Timestamp">
<filter type=""/>
</add>
<add initializeData="..\..\app_tracelog.svclog" type="System.Diagnostics.XmlWriterTraceListener, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" name="ServiceModelTraceListener" traceOutputOptions="Timestamp">
<filter type=""/>
</add>
</sharedListeners>
</system.diagnostics>
<system.web>
<compilation debug="true"/>
</system.web>
<!-- tempdt timeout values-->
<system.serviceModel>
<bindings>
<netTcpBinding>
<binding name="NetTcpBinding_ISimSession" closeTimeout="00:10:00" openTimeout="00:10:00" receiveTimeout="00:10:00" sendTimeout="00:10:00" transactionFlow="false" transferMode="Buffered" transactionProtocol="OleTransactions" hostNameComparisonMode="StrongWildcard" listenBacklog="10" maxBufferPoolSize="524288" maxBufferSize="104857600" maxConnections="10" maxReceivedMessageSize="104857600">
<readerQuotas maxDepth="32" maxStringContentLength="104857600" maxArrayLength="104857600" maxBytesPerRead="104857600" maxNameTableCharCount="104857600"/>
<reliableSession ordered="true" inactivityTimeout="00:10:00" enabled="false"/>
<!--<security mode="Transport">
<transport clientCredentialType="Windows" protectionLevel="EncryptAndSign" />
<message clientCredentialType="Windows" />
</security>-->
</binding>
</netTcpBinding>
</bindings>
<services>
<service name="SimCentral.Server.SimSession">
<endpoint address="" binding="netTcpBinding" bindingConfiguration="NetTcpBinding_ISimSession" contract="NextGenServices.Contract.ISimSessionService.ISimSession">
<identity>
<dns value="localhost"/>
</identity>
</endpoint>
<endpoint address="mex" binding="mexTcpBinding" contract="IMetadataExchange"/>
<host>
<baseAddresses>
<add baseAddress="net.tcp://localhost:8732/Design_Time_Addresses/NextGenService/SimSession/"/>
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior>
<!-- To avoid disclosing metadata information,
set the value below to false and remove the metadata endpoint above before deployment -->
<serviceMetadata httpGetEnabled="false"/>
<!-- To receive exception details in faults for debugging purposes,
set the value below to true. Set to false before deployment
to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
<runtime>
<gcServer enabled="true"/>
<gcConcurrent enabled="true"/>
</runtime>
</configuration>
客户端的app.config
<?xml version="1.0"?>
<configuration>
<appSettings>
<add key="ContractType" value="ISimSession"/>
<add key="ISimSessionNameSpaceVersion" value="http://Invensys.com/SimSci-Esscor/NextGen-Sim/1.0.32.6e"/>
<add key="Scope" value="aa.soa://SimSession"/>
<add key="UseASBHost" value="0"/>
<add key="logFile" value="C:\ProgramData\SimSci\Log\client.log"/>
<add key="logLevel" value="Debug"/>
</appSettings>
<system.serviceModel>
<bindings>
<netTcpBinding>
<binding name="NetTcpBinding_ISimSession" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" transactionFlow="true" transferMode="Buffered" transactionProtocol="OleTransactions" hostNameComparisonMode="StrongWildcard" listenBacklog="10" maxBufferPoolSize="524288" maxBufferSize="104857600" maxConnections="10" maxReceivedMessageSize="104857600">
<readerQuotas maxDepth="32" maxStringContentLength="104857600" maxArrayLength="104857600" maxBytesPerRead="104857600" maxNameTableCharCount="104857600"/>
<reliableSession ordered="true" inactivityTimeout="00:10:00"/>
<!--<security mode="Transport">
<transport clientCredentialType="Windows" protectionLevel="EncryptAndSign" />
<message clientCredentialType="Windows" />
</security>-->
</binding>
</netTcpBinding>
</bindings>
<client>
<endpoint address="net.tcp://localhost:8732/Design_Time_Addresses/NextGenService/SimSession/" binding="netTcpBinding" bindingConfiguration="NetTcpBinding_ISimSession" contract="SimSessionService.ISimSession" name="NetTcpBinding_ISimSession">
<identity>
<dns value="localhost"/>
</identity>
</endpoint>
</client>
</system.serviceModel>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
我尝试了互联网上的所有建议,但没有一个对我有用。我还能做些什么来解决这个问题吗?谢谢。
【问题讨论】:
@spender 如果是防火墙,客户端很可能会超时。 TCP错误说没有监听进程.. 您不必为那些 TCP 端点添加 IIS 绑定吗?我不确定。 @spender:防火墙应该不是问题。我已经在 windows 防火墙上设置了端口号 8732 以允许通信。 @all:我想通了。我必须将两个解决方案(客户端和服务器)都设置为启动项目才能调用该程序。谢谢你们的帮助 IIS 绑定:打开 IIS -> 站点 -> 默认网站 右键单击 -> 编辑绑定 -> 选择类型:net.tcp 和绑定信息:8732:* 【参考方案1】:我也遇到了同样的问题。
请检查您的 Windows 服务 OnStart 方法是否有以下行。
serviceHost = new ServiceHost(typeof(**WCFService**));
确保这个 WCFService 实际上是您的 WCF 服务合同类而不是 Windows 服务类。互联网上有一些帖子为 Windows 服务而不是 WCFService 创建此 ServiceHost,这是不正确的。
【讨论】:
HTTP 调用失败的可能原因有数百种。不启动 HTTP 服务是其中之一。此外,如果您尝试在非 WCF 类或接口上启动 ServiceHost,则会收到一个异常告诉您。 我相信这个问题与 net.tcp 绑定而不是 http 绑定有关?你为什么要解释 HTTP 失败? 用 TCP 替换 HTTP,无论如何。关键是,你没有回答这个问题。问题是“为什么我的代码不起作用”,而不是“列出此代码失败的所有可能原因”。您的回答显示了导致此问题的许多可能且非常具体的原因之一,基本上是说明“确保 WCF 服务正在运行”。以上是关于TCP错误代码10061:无法建立连接,因为目标机器主动拒绝它 127.0.0.1:8732的主要内容,如果未能解决你的问题,请参考以下文章
连接被对方拒绝:10061:无法建立连接,因为目标机器主动拒绝它
TCP 错误代码 10061:无法连接到 net.tcp://。连接尝试持续了 00:00:01.0156241 的时间跨度
socket_connect(): 无法连接 [10061] - 目标机器主动拒绝它
DJANGO EMAIL CONFIRMATION: [WinError 10061] 由于目标机器主动拒绝,无法建立连接