在WCF中实现双向通信, Callback 注意问题

看了Artech 的我的WCF之旅(3):在WCF中实现双向通信(Bi-directional Communication)
自己也写了个小例子, 可谓“好事多磨”, 看着人家的文章一步一步地搞这个例子也遇到了不少问题。
好在有我这双Debug查错的火眼金睛,问题都迎刃而解。

  总结起来, 以下几个问题是要注意的:
  1.baseAddress 是一定要的。 一开始我还自以为是的认为有了endpoint配置节的ABC(Address, Binding, Contract)就可以了.

        <host>
          
<baseAddresses>
            
<add baseAddress="http://localhost:10002/ComputeService"/>
          
</baseAddresses>
        
</host>


  2. 指定Callback Contract跟那一个Contract关系:
  3. 在Service实现类中设定并发模式:
  4. 要为URL 添加保留项,即开放该地址http://localhost:10002/ComputeService. 这个操作只针对Vista, 可能Windows 2003也要, 不清楚。
    如何添加呢?
    首先, 如果你打开了UAC(用户帐户控制),你需要关闭它。
    打开命令行, 使用netsh.exe 工具进行配置(Windows 2003使用httpConfig.exe)
    键入 netsh http add urlacl url=http://+:10002/ComputeService user=[Domain]\[UserName]
    关于更多为http 的url设置相关权限的信息, 参考:
http://msdn2.microsoft.com/en-us/library/ms733768.aspx.

posted @ 2007-12-02 22:17  Stanley.Luo  阅读(1014)  评论(0编辑  收藏  举报