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



我正试图将CORS标头添加到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发挥作用呢?

您出现该错误是因为定义的类型错误:您丢失了该类型的namespace。

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

可能版本是错误的,因为它在定义中等于0.0.0.0。有关程序集版本,请参见AssemblyInfo.cs

我看到程序集没有一个强名称。因此,您可以从定义中删除"版本"one_answers"区域性"。

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