向预编译网站添加行为扩展

时间:2015-03-31 05:39:24

标签: wcf web-config cors precompiled servicebehavior

我尝试将the CORS headers添加到WCF服务,该服务是VS 2012中预编译网站项目的一部分。

错误

The type 'EnableCrossOriginResourceSharingBehavior, MyWebSite, Version=0.0.0.0, Culture=neutral' registered for extension 'crossOriginResourceSharingBehavior' could not be loaded.

来自配置文件

<behaviors>
  <serviceBehaviors>...</serviceBehaviors>
  <endpointBehaviors>
    <behavior name="jsonBehavior">
      <webHttp />
      <crossOriginResourceSharingBehavior />  <!-- Error Here -->
    </behavior>
  </endpointBehaviors>
</behaviors>
<extensions>
  <behaviorExtensions>
    <add name="crossOriginResourceSharingBehavior" type="EnableCrossOriginResourceSharingBehavior, MyWebSite, Version=0.0.0.0, Culture=neutral" />
  </behaviorExtensions>
</extensions>

现在,显然,预编译站点中没有MyWebSite.dll。那么,我如何通过这个并使BehaviorExtension工作?

1 个答案:

答案 0 :(得分:1)

您有错误,因为定义的类型错误:您丢失了类型的名称空间。

<add name="crossOriginResourceSharingBehavior" type="MyWebSite.EnableCrossOriginResourceSharingBehavior, MyWebSite, Version=0.0.0.0, Culture=neutral" />

可能版本错误,因为它在定义中等于0.0.0.0。有关装配版本,请参阅AssemblyInfo.cs

我看到程序集没有强名。因此,您可以从定义中删除版本和文化。

<add name="crossOriginResourceSharingBehavior" type="MyWebSite.EnableCrossOriginResourceSharingBehavior, MyWebSite" />