Добавление расширения поведения на предварительно скомпилированный веб-сайт

Я пытаюсь добавить заголовки 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?

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" />
Другие вопросы по тегам