У меня есть веб-сайт, который спорадически выдает следующую ошибку:
Ошибка сервера в приложении "/".
Не удалось загрузить файл или сборку "ICSharpCode.SharpZipLib, Version = 0.85.3.365, Culture = neutral, PublicKeyToken = 1b03e6acf1164f73" или одну из его зависимостей. Расположенное определение манифеста сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040)
Теперь я знаю, что у меня есть зависимость от этой DLL, но у меня есть версия 0.85.5 в моей системе. Я систематически удалял каждую более старую версию DLL с сервера, перекомпилировал все и переиздал. Но независимо от того, что я делаю, кажется, что после каждого повторного опубликования, первого или двух раз, когда кто-то посещает сайт, они получают эту ошибку. Затем после обновления один или два раза ошибка исчезает, и сайт функционирует как обычно.
Что еще более странно, если я смотрю на строку кода, где возникает ошибка:
URLRewriter.ProcessRewritingResult(status, excludedEnum, siteName, viewMode, relativePath);
URLRewriter
- это класс из стороннего пакета (Kentico CMS - CMS.URLRewritingEngine.dll). Я запустил Dependency Walker в этой DLL и не нашел никаких зависимостей в ICSharpCode.SharpZipLib.
Любые идеи, как это исправить?
EDIT: В предложении @JeremyThompson я запустил Process Monitor, чтобы поймать ошибку. Здесь дамп экрана, с выделенными выделенными фрагментами (и одно имя папки закрыто для неприкосновенности частной жизни). Вы можете просмотреть его полный размер, щелкнув его правой кнопкой мыши и т.д.
РЕДАКТИРОВАТЬ: Здесь трассировка нагрузки от ошибки. Помогает ли это?
=== Информация о состоянии предварительной привязки ===
LOG: Пользователь = MY-SERVER-12\Administrator
LOG: DisplayName = ICSharpCode.SharpZipLib, Версия = 0.85.3.365, Культура = нейтральная, PublicKeyToken = 1b03e6acf1164f73 (Полностью указано)
LOG: Appbase = file:///C:/inetpub/wwwroot/MySite/
ВХОД: Начальный PrivatePath = C:\inetpub\wwwroot\MySite\bin
Вызывающая сборка: CMS.WebAnalytics, Version = 6.0.4377.2467, Culture = neutral, PublicKeyToken = 834b12a258f213f9.
===
LOG: Это связывание начинается в контексте нагрузки по умолчанию.
LOG: Использование файла конфигурации приложения: C:\inetpub\wwwroot\MySite\web.config
LOG: Использование файла конфигурации хоста: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet.config
LOG: использование файла конфигурации машины из C:\Windows\Microsoft.NET\Framework64\v4.0.30319\config\machine.config.
LOG: послеполитическая ссылка: ICSharpCode.SharpZipLib, Version = 0.85.3.365, Culture = neutral, PublicKeyToken = 1b03e6acf1164f73
LOG: попытка загрузки нового файла URL:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET Files/root/9760eb69/275bb3db/ICSharpCode.SharpZipLib.DLL.
LOG: попытка загрузки нового файла URL:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET Files/root/9760eb69/275bb3db/ICSharpCode.SharpZipLib/ICSharpCode.SharpZipLib. DLL.
LOG: попытка загрузки нового файла URL:///C:/inetpub/wwwroot/MySite/bin/ICSharpCode.SharpZipLib.DLL.
LOG: попытка загрузки нового файла URL:///C:/inetpub/wwwroot/MySite/bin/ICSharpCode.SharpZipLib/ICSharpCode.SharpZipLib.DLL.
LOG: попытка загрузки нового файла URL:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET Files/root/9760eb69/275bb3db/ICSharpCode.SharpZipLib.EXE.
LOG: попытка загрузки нового файла URL:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET Files/root/9760eb69/275bb3db/ICSharpCode.SharpZipLib/ICSharpCode.SharpZipLib. EXE.
LOG: попытка загрузки нового файла URL:///C:/inetpub/wwwroot/MySite/bin/ICSharpCode.SharpZipLib.EXE.
LOG: попытка загрузки нового файла URL:///C:/inetpub/wwwroot/MySite/bin/ICSharpCode.SharpZipLib/ICSharpCode.SharpZipLib.EXE.