C# WCF SocketException

C# WCF SocketException,c#,wcf,socketexception,C#,Wcf,Socketexception,我正在VS2010中开发一个WCF应用程序。当我使用IDE中的调试器来运行主机应用程序和客户端时,一切都正常工作 但是,当我手动运行这两个可执行文件时(转到/bin/Debug/文件夹),我从客户端得到以下异常: System.Net.Sockets.SocketException:无法建立连接,因为目标计算机主动拒绝它127.0.0.1:8732 奇怪的是,在app.config文件中,我指定使用端口5000,而不是8732 怎么了?先谢谢你 编辑:以下是主机应用程序的app.config:

我正在VS2010中开发一个WCF应用程序。当我使用IDE中的调试器来运行主机应用程序和客户端时,一切都正常工作

但是,当我手动运行这两个可执行文件时(转到/bin/Debug/文件夹),我从客户端得到以下异常:

System.Net.Sockets.SocketException:无法建立连接,因为目标计算机主动拒绝它127.0.0.1:8732

奇怪的是,在app.config文件中,我指定使用端口5000,而不是8732

怎么了?先谢谢你

编辑:以下是主机应用程序的app.config:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>

  <system.web>
    <compilation debug="true" />
  </system.web>
  <!-- When deploying the service library project, the content of the config file must be added to the host's 
  app.config file. System.Configuration does not support config files for libraries. -->
  <system.serviceModel>
    <services>
      <service name="WCFServiceLibrary.SavalotServiceObject">
        <endpoint address="" binding="wsHttpBinding" contract="WCFServiceLibrary.ISavalotService">
          <identity>
            <dns value="localhost" />
          </identity>
        </endpoint>
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
        <host>
          <baseAddresses>
            <add baseAddress="http://localhost:5000/Design_Time_Addresses/WCFServiceLibrary/SavalotServiceObject/" />
          </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="True"/>
          <!-- 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="False" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>

</configuration>


您是否尝试过使用类似的工具?在两端运行它是解决套接字问题的好方法。

您是否尝试过使用类似的方法?在两个端点上运行它是解决套接字问题的一个好方法。

发布后,用户无需查看13条评论

在本例中,问题是用户正在运行多项目解决方案。在这种情况下,无论运行哪个项目,其配置文件都很重要

如果您正在运行WcfService,则需要将包含该服务的项目配置为使用正确的端口

如果您正在测试WCF服务,则需要将测试项目的
app.config
文件配置为使用正确的端口


这是Web服务新手经常犯的错误,不必为此感到羞耻。

发布后,用户无需查看13条评论

在本例中,问题是用户正在运行多项目解决方案。在这种情况下,无论运行哪个项目,其配置文件都很重要

如果您正在运行WcfService,则需要将包含该服务的项目配置为使用正确的端口

如果您正在测试WCF服务,则需要将测试项目的
app.config
文件配置为使用正确的端口


这是webservices新手经常犯的错误,没有什么好羞愧的。

当您按ctrl+F5并在不调试的情况下运行它时会发生什么情况然后您的问题是您的配置文件中有调试特定的设置。deltree我在上面的帖子中添加了app.config,我需要更改什么?谢谢,请不要在标题前加上“C”之类的前缀。这就是标记的作用。@Motig visual studio会在配置文件下创建一个调试和发布配置文件。当您按ctrl+F5并在不调试的情况下运行配置文件时会发生什么情况?您的问题是配置文件中有特定于调试的设置。deltree我在上面的帖子中添加了app.config,我需要更改什么?谢谢,请不要在标题前加上“C”之类的前缀。这就是标记的用途。@Motig visual studio会在配置文件下面创建一个调试和发布配置文件