Сборка Asp.Net не запускается - PullRequest
0 голосов
/ 18 ноября 2010

Моя текущая проблема заключается в том, что измененная мной сборка работает на моем локальном хосте во время отладки, но, похоже, я не могу распознать новый код на сервере стадии, на который я копирую код.Ненавижу это говорить, но сейчас я могу правдиво сказать: «Он работает на моей машине».Хорошая новость заключается в том, что тот же код работает так же, как и при разработке на компьютере другого человека.

Я открыл WebSite.dll с отражателем и проверил разборку исходного кода, и мои новые материалы там есть.

Я также перезапустил сайт и пул приложений, и естьнет старого кода, который я могу обвинить.

Есть ли какой-нибудь кеш, который я должен где-то сделать недействительным?

VS2010, C # 4.0, IIS7, Windows Server 2008.

Спасибо, Джош

Ответы [ 2 ]

1 голос
/ 19 ноября 2010

Я уже сталкивался с подобными проблемами раньше, и это была проблема с разрешениями, работающими в вашей промежуточной среде. Если вы используете отражение, которое может потребоваться для доступа к некоторой DLL в GAC, которая может вызвать проблему, убедитесь, что ваш пул приложений имеет доступ во внешние библиотеки также ...

1 голос
/ 18 ноября 2010

Существует три подхода, которые вы можете использовать для определения уровня доступа. Использовать SysInternals Process Explorer .

Когда вы нажимаете на процесс, в нижней панели отображаются библиотеки DLL.Он будет содержать информацию о том, где он загружен в качестве всплывающей подсказки, и вы можете выбрать его в качестве столбца для отображения.

Извлечение Dll из памяти

Сначала получите дамп памяти процесса ASPNET Worker. См. Этот вопрос о том, как.
Мэтт Эверсон принял ответ на вопрос об использовании SysInternals VMMap, который ...

имеет параметры командной строки для сценариев и может даватьвам необходимую информацию.

vmmap.exe -p w3wp.exe C: \ memory.txt

Как только вы это сделаете, вы можете использовать WinDbg для проверки модулей (Дллс) в памяти. В этой статье от Роберто Фараха показано, как это сделать, а затем извлечь ее из памяти на диск и затем использовать отражатель, как вы это делали ранее.

Просмотр журнала привязки сборки

Вы можете использовать Просмотр журнала привязки сборки , который точно скажет, что загружено и откуда оно пришло.Это гораздо лучший подход, но он требует, чтобы вы внесли изменения в реестр, чтобы включить ведение журнала, от которого некоторые люди уклоняются от ящиков не-Dev.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...