我丢失了Umbraco(控制器、模型(的自定义源代码,但我的网站在IIS上运行。
我可以从编译版本中恢复代码吗。如果是,我该如何实现?
如有任何帮助,我们将不胜感激。
严格来说,您不会恢复源代码,但正如前面所说,您可以使用ILSpy或dotPeek等工具进行反编译,以查看.NET二进制文件的代码表示。
我遇到过一个不幸的处境,因为情有可原的情况,我不得不对一个新客户的网站进行反编译,该网站已经丢失了源代码,所以我最终要做的是回到原点。
- 设置新的解决方案,使用与以前相同的项目结构
- 将现有的二进制文件移植到测试服务器,并更改配置以将数据库指向新的副本。您希望在该服务器上运行完全相同的代码,但所有外部依赖项(数据库、日志记录、blob存储等(都是独立的
- 将反编译后的代码放在一个屏幕上,将Visual Studio放在另一个屏幕中,逐一浏览每个文件,直到找到可构建的解决方案。如果解决方案包含测试,请先执行这些操作
- 将您的代码放入源代码管理!此外,请确保您的存储库位于其他地方,无论是在GitHub/Gitlab还是其他机器上,只要它不在一个位置即可
- 一旦你觉得代码有效,就在发布模式下构建新的二进制文件,然后再次进行反编译。从这里开始,将旧的二进制文件与新的二进制文件进行比较,看看是否有任何差异
- 如果这不存在,请构建一个测试框架,以确保移植到新代码的所有功能都能继续工作
- 一旦你觉得你有一个准确的端口,部署。如果你有一个蓝色/绿色的设置,这将非常好地检查生产问题
由于你已经将你的帖子标记为Umbraco,我认为这是一个Umbraco网站。确保你使用的Umbraco版本与你现有的网站相同,否则你会受到伤害。还要确保您的所有第三方库都已正确配置,并且任何资产/工件都已备份。部署新代码时,您最不想做的事情就是清除媒体库或杀死所有日志。