Не удалось загрузить тип System.Runtime.Диагностика.ITraceSourceStringProvider

#c# #.net #wcf #windows-server-2012

#c# #.net #wcf #windows-server-2012

Вопрос:

Я только что выполнил обновление Windows Server 2008 R2 на месте до Windows Server 2012, и теперь моя служба WCF, размещенная самостоятельно, запускается, но немедленно завершается со следующей ошибкой:

Служба не может быть запущена. Система.Исключение TypeLoadException: не удалось загрузить тип ‘System.Runtime.Диагностика.ITraceSourceStringProvider «из системы сборки».ServiceModel.Внутренние компоненты, версия = 4.0.0.0, Культура = нейтральная, PublicKeyToken= 31bf3856ad364e35’. в системе.ServiceModel.Каналы.TextMessageEncoderFactory..ctor(версия MessageVersion, кодировка writeEncoding, Int32 maxReadPoolSize, Int32 maxWritePoolSize, квоты XmlDictionaryReaderQuotas) в системе.ServiceModel.Каналы.HttpTransportDefaults .GetDefaultMessageEncoderFactory() в системе.ServiceModel.Каналы.HttpChannelListener..ctor(HttpTransportBindingElement bindingElement, контекст BindingContext) в системе.ServiceModel.Каналы.HttpChannelListener`1..ctor(HttpTransportBindingElement bindingElement, контекст BindingContext) в системе.ServiceModel.Каналы.HttpTransportBindingElement .BuildChannelListener[TChannel](контекст BindingContext) в системе.ServiceModel.Каналы.Привязкаcontext.BuildInnerChannelListenerTChannel в системе.ServiceModel.Каналы.MessageEnc…

Та же служба работает нормально при новой установке Windows Server 2012 (хотя и не полностью исправленный atm).

Комментарии:

1. Я бы попробовал переустановить .net 4 4.5 . есть ли вероятность, что ваш сервис скомпилирован с использованием .net 4.0 и 4.5?

2. В нем довольно много пакетов nuget, которые были скомпилированы для .net 4.0. Сама служба нацелена на 4.5.1.

3. у вас должна быть конфигурация, где указано, какие именно библиотеки DLL вам нужны, и если вы этого не сделаете, есть способ конкретно запросить, чтобы получить версию 4.5.1 … что-то dll manifest IIRC

Ответ №1:

Переустановка .NET 4.5.2, предложенная AK_, устранила проблему.