Добавление расширения поведения на предварительно скомпилированный веб-сайт
Я пытаюсь добавить заголовки 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" />