Восстановить пользовательский код Umbraco из скомпилированного кода - PullRequest
0 голосов
/ 25 ноября 2018

Я потерял пользовательский исходный код Umbraco (контроллеры, модели), но мой сайт работает на IIS.

Можно ли восстановить код из скомпилированной версии.Если да, то как мне этого добиться?

Любая помощь будет высоко оценена.

1 Ответ

0 голосов
/ 26 ноября 2018

Строго говоря, вы не восстановите свой исходный код, но, как уже было сказано, вы можете декомпилировать с помощью такого инструмента, как ILSpy или dotPeek , чтобы увидеть представление кода того или иного кода.NET двоичный код делает.

У меня была неудачная ситуация, когда мне пришлось декомпилировать сайт нового клиента, который потерял свой исходный код из-за смягчающих обстоятельств, поэтому вот что я в итоге сделал, чтобы вернутьсяв квадрат.

  1. Установите новое решение с той же структурой проекта, что и у вас.
  2. Перенесите существующие двоичные файлы на тестовый сервер и измените конфигурацию науказать базы данных на новую копию.Вы хотите, чтобы точно такой же код выполнялся на этом сервере, но все внешние зависимости (БД, ведение журнала, хранилище больших двоичных объектов и т. Д.) Были бы отдельными.
  3. Поместите декомпилированный код на одном экране, а Visual Studio - на другом,и просматривайте каждый файл один за другим, пока не получите готовое решение.Если решение содержит тесты, сначала выполните их.
  4. Поместите свой код в систему контроля версий!Кроме того, убедитесь, что ваш репозиторий находится в другом месте, будь то на GitHub / Gitlab или на другой машине - если только он не находится в одном месте.
  5. Как только вы почувствуете, что код работает,соберите ваши новые двоичные файлы в режиме Release и снова декомпилируйте.Отсюда, сравните ваши старые двоичные файлы с новыми двоичными файлами, чтобы увидеть, есть ли какие-либо различия.
  6. Если этого не существует, создайте инфраструктуру тестирования, чтобы убедиться, что все функции, которые вы переносите на новыйкод будет продолжать работать.
  7. Как только вы почувствуете, что у вас есть точный порт, разверните.Если у вас есть сине-зеленая установка, это будет очень хорошо работать для проверки производственных проблем.

Поскольку вы пометили свой пост как Umbraco, я предполагаю, что это сайт Umbraco.Убедитесь, что вы используете те же версии Umbraco, что и ваш существующий сайт, в противном случае вам будет нанесен вред.Также убедитесь, что все сторонние библиотеки настроены правильно, а все ресурсы / артефакты скопированы.Последнее, что вы хотите сделать при развертывании нового кода, - это стереть медиатеку или уничтожить все ваши журналы.

...