hxw

博客园 首页 新随笔 联系 订阅 管理

最近在学习WCF技术,在学习到WCF拓展时,发现一个奇怪的问题。

就是在使用自定义拓展元素时,如果按照下面的方式在配置文件注册拓展元素(配置文件手写):

<add name="ContextPropagationExtension" type="HXW.WCF.Extension.ContextPropagationBehaviorElement, HXW.WCF.Extension, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />

程序运行时会抛出一个异常:

未处理 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

具体解决方式如下:

把上面那段配置改为:

<add name="ContextPropagationExtension" type="HXW.WCF.Extension.ContextPropagationBehaviorElement,  HXW.WCF.Extension,  Version=1.0.0.0,  Culture=neutral,  PublicKeyToken=null" />

(就是在,后面加上一个空格)

就正常了。所以大家手写配置文件一定要注意。

posted on 2008-11-11 21:19  redfox105  阅读(2634)  评论(8编辑  收藏  举报