Загрузка System.Web не удалась, но загрузка System.Xml прошла успешно

Из журналов слияния проблема заключается в том, что System.Web 2.0 перенаправляется на System.Web 4.0, который НЕ входит в GAC и поэтому не загружается. Я сравнил его с System.Xml 2.0, который также перенаправляется на System.Xml 4.0, но он действительно находится в GAC и поэтому загружается успешно.

Наш app.config вызывает перенаправление со сборок 2.0 на сборки 4.0.

Вот фрагмент неудачного связывания System.Web:

LOG: This bind starts in default load context.
LOG: Using application configuration file: C:\Windows\SysWOW64\pnbrksvc.exe.Config
LOG: Using host configuration file: 
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
LOG: Version redirect found in framework config: 2.0.0.0 redirected to 4.0.0.0.
LOG: Post-policy reference: System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
LOG: GAC Lookup was unsuccessful.

Вот фрагмент успешной привязки System.Xml:

LOG: This bind starts in default load context.
LOG: Using application configuration file: C:\Windows\SysWOW64\pnbrksvc.exe.Config
LOG: Using host configuration file: 
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
LOG: Version redirect found in framework config: 2.0.0.0 redirected to 4.0.0.0.
LOG: Post-policy reference: System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
LOG: Binding succeeds. Returns assembly from C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Xml\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.dll.
LOG: Assembly is loaded in default load context.

Я бы предположил, что .NET 4 поставляется с System.Web. Может ли это быть так же просто, как переустановить System.Web v4.0 в GAC?


person Marc Sherman    schedule 03.01.2014    source источник


Ответы (1)


Прежде всего нет, это очень плохо иметь это в machine.config. Может вызвать множество проблем с приложениями, работающими в предыдущих версиях .net.

По поводу отсутствующей system.web.dll Возможно, на этом сервере кто-то установил только клиентский профиль .NET 4. Профиль клиента не включает system.web...

person MichaC    schedule 03.01.2014
comment
Наш разработчик .NET говорит, что это наш app.config, который вызывает перенаправление, а не machine.config, как я впервые сообщил. Я думал, что это машина.config, потому что журнал слияния сообщает о перенаправлении версии сразу после сообщения о пути к машине.config. - person Marc Sherman; 03.01.2014
comment
Мы попросили клиента проверить, установлен ли только клиентский профиль .NET 4. Спасибо за этот совет. - person Marc Sherman; 03.01.2014
comment
Клиент сообщил, что был установлен только клиентский профиль .NET Framework 4. Удаление этого и установка полной структуры устранили проблему. Спасибо! - person Marc Sherman; 06.01.2014
comment
Отлично, добро пожаловать ;) Сколько вы платите мне сейчас за поддержку/консультации? ^^ - person MichaC; 06.01.2014