关于WCF的一个非常“无语”的BUG!

发表于:2018-6-21 15:11

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:蒋金楠    来源:博客园

  现在我们通过IE直接访问服务的地址,你会看到如下的界面——这基本上可以表面我们的服务被成功发布。
  
   现在我们做一个非常微小的改变,将扩展行为类型从"Artech.Bug4BehaviorExtension.FooBehaviorElement, Artech.Bug4BehaviorExtension” 改成“Artech.Bug4BehaviorExtension.FooBehaviorElement,Artech.Bug4BehaviorExtension”。可能你都没有注意到到底我做了怎样的改动,提醒你一下:我们将类型名称和程序基名称之间的空格去掉了。
   

  1: <?xml version="1.0" encoding="utf-8" ?>
  2: <configuration>
  3:     <system.serviceModel>
  4:         <behaviors>
  5:             <serviceBehaviors>
  6:                 <behavior name="myServiceBehavior">
  7:                     <foo/>
  8:                     <serviceMetadata httpGetEnabled="true"/>
  9:                 </behavior>
  10:             </serviceBehaviors>
  11:         </behaviors>
  12:         <extensions>
  13:             <behaviorExtensions>
  14:                 <add name="foo" type="Artech.Bug4BehaviorExtension.FooBehaviorElement,Artech.Bug4BehaviorExtension" />
  15:             </behaviorExtensions>
  16:         </extensions>
  17:         <services>
  18:             <service behaviorConfiguration="myServiceBehavior" name="Artech.Bug4BehaviorExtension.CalculatorService">
  19:                 <endpoint binding="ws2007HttpBinding" contract="Artech.Bug4BehaviorExtension.ICalculator" />
  20:                 <host>
  21:                     <baseAddresses>
  22:                         <add baseAddress="http://127.0.0.1:3721/calculatorservice" />
  23:                     </baseAddresses>
  24:                 </host>
  25:             </service>
  26:         </services>
  27:     </system.serviceModel>
  28: </configuration>
  现在再次刷新IE页面,你将会得到如下的结果。页面上的错误信息表明:我们定义的行为扩展类型无法被WCF解析——仅仅删除了一个小小的空格,WCF就不能正确地解析类型,这彻底让我无语。在本章的开篇我已经说过,这个问题我在很多年前就遇到过。因为我习惯于手工进行WCF的配置,在进行WCF扩展相关配置的时候,我经常发现我的服务访问不了,但是怎么也找不到问题的症结。然后通过VS提供的配置工具去配置,发现服务可以正常访问。然后两者进行对比,也没有发现有什么差异。其实在那种情况下,即使我发现多一个空格这种差异,我也不会觉得这种差别就是问题的症结所在。隐约记得有位读者在我的Blog上有过相关的留言,当时也没有在意,所以这个问题就一直没有深究。我想肯定会有人之前就发现过这个问题,肯定还会有后继者会遇到这个问题。为此,写下了这篇没有什么技术含量的博文,希望遇到相似问题但百思不得其解的人能够发现这篇文章。

上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号