bindingRedirect
От: cadet354 Россия
Дата: 25.09.06 07:39
Оценка:
Доброго времени,
есть веб приложение(думаю это не принципиально в этом случае),
разбито на модули (dll),
так получилось, что одна dll использует для логирования версию log4net (1.2.0.30714),
а другая 1.2.10.0.
в web-config добавил следующие строки:
<runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
       <dependentAssembly>
         <assemblyIdentity name="log4net"
                           publicKeyToken="b32731d11ce58905"
                           culture="neutral" />
         <bindingRedirect oldVersion="1.2.0.30714"
                          newVersion="1.2.10.0"/>
       </dependentAssembly>
      </assemblyBinding>
   </runtime>

но ошибка осталась:
=== Pre-bind state information ===
LOG: DisplayName = log4net, Version=1.2.0.30714, Culture=neutral, PublicKeyToken=b32731d11ce58905
 (Fully-specified)
LOG: Appbase = file:///C:/Inetpub/wwwroot/Tender
LOG: Initial PrivatePath = bin
Calling assembly : DotNetNuke, Version=3.0.13.33292, Culture=neutral, PublicKeyToken=null.
===

LOG: Redirect found in application configuration file: 1.2.0.30714 redirected to 1.2.10.0.
LOG: Publisher policy file is not found.
LOG: No redirect found in host configuration file (c:\winnt\microsoft.net\framework\v1.1.4322\aspnet.config).
LOG: Using machine configuration file from C:\WINNT\Microsoft.NET\Framework\v1.1.4322\config\machine.config.
LOG: Post-policy reference: log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=b32731d11ce58905
LOG: Attempting download of new URL file:///c:/winnt/microsoft.net/framework/v1.1.4322/Temporary ASP.NET Files/tender/62ec02ca/3d6f5827/log4net.DLL.
LOG: Attempting download of new URL file:///c:/winnt/microsoft.net/framework/v1.1.4322/Temporary ASP.NET Files/tender/62ec02ca/3d6f5827/log4net/log4net.DLL.
LOG: Attempting download of new URL file:///C:/Inetpub/wwwroot/Tender/bin/log4net.DLL.
WRN: Comparing the assembly name resulted in the mismatch: PUBLIC KEY TOKEN

видимо из-за того, что публичный ключ в старой версии не совпадает с новой версией (в старой версии b32731d11ce58905, а в новой 1b44e1d426115821).
пробывал не указывать в assemblyIdentity publicKeyToken, но тогда редирект вообще не происходит:
LOG: Publisher policy file is not found.
LOG: No redirect found in host configuration file (c:\winnt\microsoft.net\framework\v1.1.4322\aspnet.config).
LOG: Using machine configuration file from C:\WINNT\Microsoft.NET\Framework\v1.1.4322\config\machine.config.
LOG: Post-policy reference: log4net, Version=1.2.0.30714, Culture=neutral, PublicKeyToken=b32731d11ce58905
LOG: Attempting download of new URL file:///c:/winnt/microsoft.net/framework/v1.1.4322/Temporary ASP.NET Files/tender/62ec02ca/3d6f5827/log4net.DLL.
LOG: Attempting download of new URL file:///c:/winnt/microsoft.net/framework/v1.1.4322/Temporary ASP.NET Files/tender/62ec02ca/3d6f5827/log4net/log4net.DLL.
LOG: Attempting download of new URL file:///C:/Inetpub/wwwroot/Tender/bin/log4net.DLL.
WRN: Comparing the assembly name resulted in the mismatch: Revision Number

Как это победить?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: bindingRedirect
От: stump http://stump-workshop.blogspot.com/
Дата: 25.09.06 09:02
Оценка:
Здравствуйте, cadet354, Вы писали:

C>Доброго времени,

C>есть веб приложение(думаю это не принципиально в этом случае),
C>разбито на модули (dll),
C>так получилось, что одна dll использует для логирования версию log4net (1.2.0.30714),
C>а другая 1.2.10.0.

skipped...

C>Как это победить?


Способ 1. Выкладывай в GAC обе dll log4net.
Способ 2. Перекомпили свои модули чтобы все они использовали одинаковую dll log4net.

Заметь я нигде не говорю "одинаковую версию" потому что сборки отличающиеся PublicKeyTocken это уже не версии одной сборки. Это разные сборки. Скажи спасибо разработчикам log4net.dll
Понедельник начинается в субботу
Re[2]: bindingRedirect
От: cadet354 Россия
Дата: 25.09.06 10:02
Оценка:
Здравствуйте, stump, Вы писали:


S>Способ 1. Выкладывай в GAC обе dll log4net.

сомневаюсь, что хостер позволит мне это сделать
S>Способ 2. Перекомпили свои модули чтобы все они использовали одинаковую dll log4net.
это не мои модули, это сторонние, зачастую без исходных кодов, хотя конечно можно ildisasm сделать,
но хотелось бы какого-нибудь простого решения.
S>Заметь я нигде не говорю "одинаковую версию" потому что сборки отличающиеся PublicKeyTocken это уже не версии одной сборки.
это понятно
S>Это разные сборки. Скажи спасибо разработчикам log4net.dll
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.