繁体   English   中英

如何在web.config中避免添加汇编版本?

[英]How Can I Avoid Adding Assembly Version In web.config?

我正在向我的WCF服务添加一个自定义端点行为,并使用从BehaviorExtensionElement扩展的类来初始化它。 在我的web.config ,我添加以下内容来注册行为扩展:

<system.serviceModel>
    <services>
      <service name="Service.MyService">
        <endpoint address=""
                  behaviorConfiguration="endpointBehavior"
                  binding="basicHttpBinding"
                  contract="Contracts.IMyService"/>
      </service>
    </services>

    <behaviors>
      <endpointBehaviors>
        <behavior name="endpointBehavior">
          <logBehavior />
        </behavior>
      </endpointBehaviors>
    </behaviors>

    <extensions>
      <behaviorExtensions>
        <add name="logBehavior"
             type="MyNamespace.MyBehaviorExtensionElement, MyAssembly, Version=0.0.0.1, Culture=neutral, PublicKeyToken=null" />
      </behaviorExtensions>
    </extensions>
</system.serviceModel>

这工作绝对正常,但我必须指定程序集的版本才能加载它。 如果我将程序集引用更改为仅MyNamespace.MyBehaviorExtensionElement, MyAssembly没有版本/ culture / token,则服务无法启动并显示错误:

描述:处理为此请求提供服务所需的配置文件时发生错误。 请查看下面的具体错误详细信息并相应地修改配置文件。

分析器错误消息:为system.serviceModel / behavior创建配置节处理程序时发生错误:无法将扩展元素“logBehavior”添加到此元素。 验证扩展是否已在system.serviceModel / extensions / behaviorExtensions的扩展集合中注册。 参数名称:element

作为构建过程的一部分,我的程序集版本的最后部分将经常更改。 如何每次构建版本增加(可能是数百次)时,我如何避免使用新版本号继续更新web.config

我认为在.net 4或更高版本中删除了对完全指定的类名的限制。 你有没有尝试过:

  <behaviorExtensions>
     <add name="logBehavior"
         type="MyNamespace.MyBehaviorExtensionElement, MyAssembly" />
  </behaviorExtensions>

我可能错了!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM