在我托管在 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="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/behaviors 创建配置节处理程序时出错:无法将扩展元素“serviceKeyBehavior”添加到此元素。验证扩展是否已在 system.serviceModel/extensions/behaviorExtensions 的扩展集合中注册。参数名称:元素(C:\inetpub\wwwroot\xyz\web.config 第 155 行)查看事件日志(ID:1265)以获取更多信息。
有什么想法吗?