2

我正在尝试将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 工作呢?

4

1 回答 1

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" />
于 2015-04-12T13:41:25.467 回答