在WCF开发插件的使用过程中,往往会因为一些细节问题产生了不少的WCF Bug,那么如何才能正确的解决这些Bug呢?我们将会在这里通过一个特殊的Bug处理来为大家讲解一下具体的解决方法。
最近在学习WCF技术,在学习到WCF拓展时,发现一个奇怪的WCF Bug。
就是在使用自定义拓展元素时,如果按照下面的方式在配置文件注册拓展元素(配置文件手写):
- < add name="ContextPropagationExtension"
- type="HXW.WCF.Extension.ContextPropagationBehaviorElement,
HXW.WCF.Extension, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=null" />
程序运行时会抛出一个WCF Bug的异常:#t#
未处理 System.Configuration.ConfigurationErrorsException
Message="创建 system.serviceModel/behaviors 的配置节处理程序时出错: 无法将扩展元素“ContextPropagationExtension”添加到此元素中。请验证该扩展是否已在system.serviceModel/extensions/behaviorExtensions 中的扩展集合中注册。\r\n参数名: element (F:\\hxw\\wcf\\HXW.WCF\\HXW.WCF.Host\\bin\\Debug\\HXW.WCF.Host.vshost.exe.Config line 10)"
研究了两天都解决不了。
***google了才发现是微软的BUG。具体看下面的链接:
https://connect.microsoft.com/wcf/feedback/ViewFeedback.aspx?FeedbackID=216431
WCF Bug的具体解决方式如下:
把上面那段配置改为:
- < add name="ContextPropagationExtension"
- type="HXW.WCF.Extension.ContextPropagationBehaviorElement,
HXW.WCF.Extension, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
(就是在,后面加上一个空格)
就正常了。所以大家手写配置文件一定要注意,以免造成WCF Bug。