Просто споткнулся об этом сегодня, и я не могу найти никакой информации об этом. Так вот почему я спрашиваю здесь. Возможно, кто-то знает, почему.
Я добавил пользовательское расширение поведения WCF в свой web.config. Это выглядит так:
<behaviorExtensions>
<add name="errorBehavior" type="MyNs.TracingErrorBehaviorElement,MyNs,
Version=1.0.6.0, Culture=neutral, PublicKeyToken=null" />
</behaviorExtensions>
(Нет места там: MyNs.TracingErrorBehaviorElement,MyNs
)
Он отлично работает на моей машине разработки, на нашем промежуточном сервере, на нашем реальном сервере и т.д.
Сегодня мы установили продукт на сервер клиента и получили следующее исключение:
System.Configuration.ConfigurationErrorsException: произошла ошибка создание обработчика раздела конфигурации для system.serviceModel/behaviors: Элемент расширения 'errorBehavior' не могут быть добавлены к этому элементу. Убедитесь, что расширение зарегистрировано в system.serviceModel/расширения/behaviorExtensions...
Проведя полчаса поиска в Интернете по возможным причинам, я добавил пробелы в полное имя сборки. Поэтому я изменил его на:
<behaviorExtensions>
<add name="errorBehavior" type="MyNs.TracingErrorBehaviorElement, MyNs,
Version=1.0.6.0, Culture=neutral, PublicKeyToken=null" />
</behaviorExtensions>
(см. пробел: MyNs.TracingErrorBehaviorElement, MyNs
)
и он работал.
Кто-нибудь знает, почему он работает без места на некоторых машинах, а не на других?
Я проверил .Net-versions
. Они подошли. Это может быть вызвано региональными настройками?
Редактор говорит:
Я проверил используемые версии .Net на всех машинах, и они все одинаковы:.Net 4.0 Но я нашел разницу между машиной, где я получаю ошибку с отсутствующей пустой и другими машинами, где она работает: Все машины, на которых он работает без пробела, установили .Net Framework 4.5. Таким образом, это может быть одна из тех ошибок, которые были исправлены в 4.0 и развернуты с 4.5, правильно?