可能重复:
How do i specify wcf behaviorExtension class type without the assembly version number?
在我在IIS7上托管的Web应用程序中,我有一个项目X引用项目Y(VS2010中的项目引用)。我正在尝试使用X的web.config中的Y类型添加behaviorExtensions而不指定版本号。
我在System.ServiceModel.Extensions下添加了behaviorExtension。
<behaviorExtensions>
<add name="serviceKeyBehavior" type="MyNS.ServiceSupport.ServiceKeyBehaviorExtensionElement, Analyst.API"/>
<add name="userNameClientCredentials" type="MyNS.ServiceSupport.UserNameClientCredentialsElement, Analyst.API" />
</behaviorExtensions>
如果没有指定例如,我就无法使其工作。
Version=3.2.1.0, Culture=neutral, PublicKeyToken=null
在type属性的末尾。
通常只是省略上面的版本信息就可以了。
如果我改变了
type="MyNS.ServiceSupport.ServiceKeyBehaviorExtensionElement, Analyst.API"
到
type="MyNS.ServiceSupport.ServiceKeyBehaviorExtensionElement, Analyst.API, Version=3.2.1.0, Culture=neutral, PublicKeyToken=null"
(3.2.1.0 ==当前的DLL版本),它可以工作。
否则它声称找不到类型:
为其创建配置节处理程序时发生错误 system.serviceModel / behavior:扩展元素'serviceKeyBehavior' 无法添加到此元素。验证扩展名是否正确 在扩展集合中注册 system.serviceModel /扩展/ behaviorExtensions。参数名称: element(C:\ inetpub \ wwwroot \ xyz \ web.config第155行) 检查事件日志(ID:1265)以获取更多信息。
有什么想法吗?
答案 0 :(得分:0)
我在2008年发现了这篇博文:
http://keyvan.io/configuration-error-for-custom-behavior-extensions-in-wcf
这似乎是WCF中的一个错误。 我尝试用.Net framework 4.0重新编译它,然后它工作正常。
StackOverflow上还有一个线程描述了我之前没有找到的:
How do i specify wcf behaviorExtension class type without the assembly version number?