Из журналов слияния проблема заключается в том, что 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?