Wcf Win7中的wsDualHttpBinding错误

Wcf Win7中的wsDualHttpBinding错误,wcf,wcf-binding,wcf-client,wsdualhttpbinding,Wcf,Wcf Binding,Wcf Client,Wsdualhttpbinding,我有一个服务器/客户端应用程序,其中服务器托管在IIS服务器中,许多客户端将连接到该IIS服务器,使用双绑定将消息从服务器广播到客户端 我在我的Vista机器上开发,没有错误,但是当我们在使用Windows7的客户端PC上测试客户端应用时,我得到了错误 我第一次遇到这个错误: HTTP无法注册URL 因为另一个应用程序正在使用TCP端口80。例外 在主UI线程1上处理 根据来自internet的解决方案,我在客户端配置文件中添加了clientBaseAddress无更改,并且从未在服务器配置中添

我有一个服务器/客户端应用程序,其中服务器托管在IIS服务器中,许多客户端将连接到该IIS服务器,使用双绑定将消息从服务器广播到客户端

我在我的Vista机器上开发,没有错误,但是当我们在使用Windows7的客户端PC上测试客户端应用时,我得到了错误

我第一次遇到这个错误:

HTTP无法注册URL 因为另一个应用程序正在使用TCP端口80。例外 在主UI线程1上处理

根据来自internet的解决方案,我在客户端配置文件中添加了clientBaseAddress无更改,并且从未在服务器配置中添加clientBaseAddress,现在我遇到第二个错误:

HTTP无法注册URL。你的 进程没有对此命名空间的访问权限。请参阅 详情请参阅。例外 在主UI线程1上处理

好的,我发现一些评论说需要在管理员模式下运行客户端应用程序,我也这样做,我没有收到前两个错误,但这次我收到了屏幕冻结5分钟后的超时错误

超时错误

打开操作未在分配的超时内完成 00:05:00. 分配给此操作的时间可能是一部分 超时时间更长。在主UI线程1上处理的异常

下面是当我遇到第二个错误时正在使用的客户端配置

<wsDualHttpBinding>
        <binding name="WSDualHttpBinding_ICommunicationService"
                 closeTimeout="00:05:00" openTimeout="00:05:00" receiveTimeout="00:10:00" sendTimeout="00:05:00"
                 bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
                 maxBufferPoolSize="0" maxReceivedMessageSize="2147483647"
                 messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true" 
                 clientBaseAddress="http://remote-server:8001/Communication/">
          <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
          <reliableSession ordered="true" inactivityTimeout="00:10:00" />
          <!--<security mode="Message">
            <message clientCredentialType="Windows" negotiateServiceCredential="true" algorithmSuite="Default" />
          </security>-->
          <security mode="None" />
        </binding>
客户端配置中的终结点:

<client>
      <endpoint address="http://remote-server:90/Communication/CommunicationService.svc" binding="wsDualHttpBinding" bindingConfiguration="WSDualHttpBinding_ICommunicationService" contract="CommunicationService.ICommunicationService" name="WSDualHttpBinding_ICommunicationService">
      </endpoint>
    </client>

真的没主意了,有意见吗?

客户端HTTP无法注册。。。发生错误的原因是指定的url未注册到运行进程的用户


要暂时解决此问题,可以使用HTTPNamespaceManager.exe程序修改本地计算机上的URL访问保留列表。请点击此处:

关闭防火墙以验证它是否阻止传入呼叫如何?您是指IIS服务器中的防火墙吗?我从未关闭过它,但我的Vista机器运行良好,而且对于WinXP,在添加clientBaseAddress后,这个问题得到了解决,但是Win7没有运气。但我会尝试你的方式,看看它是否相关。谢谢,不用了。默认情况下,每台Windows计算机都使用防火墙,包括Win7。您已将客户端配置为侦听意外端口91上的回调。顺便说一句,您应该使用大于1024的端口,因此如果防火墙正在运行,则很可能不会为此端口打开。我已尝试关闭客户端PC和服务器上的防火墙,并将端口从91更改为8001,仍然会得到相同的结果仅供参考此问题在Vista PC中不会发生