我目前有一个带有回调契约(Contract)(双工)的 WCF 服务,当我使用在我的计算机上使用它的应用程序时一切正常,但是当我从另一台计算机尝试它时,它无法连接。

一旦我切换到使用这个 wsDualHttpBinding(用于回调),这些问题就开始发生,因为当我使用 wsHttpBinding 时一切正常。

为什么 Web 服务不接受来自其他计算机的请求?是否需要修改一些托管设置?

至于日志,我得到了这些:

alt text http://img17.imageshack.us/img17/4628/wcfissue.jpg



我的路由器(TCP 和 UDP)上的端口是打开的,所以这不是问题。

至于服务属性,这就是我正在使用的:

界面:

[ServiceContract(Name = "MusicRepo_DBAccess_Service",
                 CallbackContract = typeof(IOnlineUsersCallback),
                 SessionMode=SessionMode.Required)]

服务:
[ServiceBehavior(
        ConcurrencyMode=ConcurrencyMode.Reentrant,
        InstanceContextMode=InstanceContextMode.Single)]

[更新]

至于 Orion Edwards ' 帖子:
  • 无防火墙
  • 见第 1 点
  • 是的,我可以,因为我在路由器上转发了端口
  • 我正在使用 IIS 来托管服务器。

  • 问题是,当我从 wsHttpBinding(工作正常)切换到 wsDualHttpBinding(因为我需要回调)时,这个问题就开始发生了

    [更新]

    我现在已经从 wsDualHttpBinding 切换到 NetTcpBinding,出于某种原因,一切正常。

    我已经使用 this article 来帮助我在 IIS 上设置托管,幸运的是一切都按预期工作,并带有回调。

    最佳答案

    我现在已经从 wsDualHttpBinding 切换到 NetTcpBinding,出于某种原因,一切正常。

    我已经使用 this article 来帮助我在 IIS 上设置托管,幸运的是一切都按预期工作,并带有回调。

    10-08 11:23