【发布时间】:2013-09-22 04:30:40
【问题描述】:
我不小心从我的 PC 中删除了一个 asp.net 解决方案。我需要恢复它。我尝试使用那里的所有文件恢复软件,但没有一个能够恢复它。
但是,该网站部署在服务器上。所以我能够从 wwwroot 文件夹和 aspx 文件中获取二进制 dll。我也有我用来发布它的部署包。
我用dotPeek反编译了dll,我恢复了所有的类。然而,唯一剩下的就是 Default.aspx.cs 背后的代码。它在我从部署中获得的 dll 中不可用。
经过一番研究,我发现它是在运行时创建的
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\MyProject\
有一个名为 default.aspx.cdcab7d2 的文件,扩展名为 .compile
我在记事本中打开它,这是它的内容:
<?xml version="1.0" encoding="utf-8"?>
<preserve resultType="3" virtualPath="/MyProject/Default.aspx" hash="d32ddda84" filehash="5c7767628c373188" flags="110000" assembly="App_Web_wcetn4cy" type="ASP.default_aspx">
<filedeps>
<filedep name="/MyProject/Default.aspx" />
<filedep name="/MyProject/Site.Master" />
</filedeps>
</preserve>
所以我得到App_Web_wcetn4cy 并用dotpeek 反编译它,我得到一个cs 文件,但它是某种自动生成的文件,而不是我拥有的代码。
知道在哪里可以获得文件 Default.aspx.cs 背后的代码吗?
谢谢
【问题讨论】:
-
所有代码后面应该在一起; Default.aspx 不是使用其他约定的特殊页面。它应该与所有其他 ASPX 页面代码一起编译。另外,我强烈建议将项目置于源代码控制中;可通过 tfs.visualstudio.com 免费获得。
-
@BrianMains 这是我拥有的唯一代码。我只有一页。我能够恢复所有类,但不能恢复背后的代码,知道位置在哪里吗?谢谢
-
如果您使用已编译的应用程序(如 Web 应用程序项目模板,我假设您是),它应该在 DLL 中。您还可以在 Internet 临时文件中查找 DLL...
-
如果它不在 DLL 中,那么它根本没有被编译。这要么意味着一开始没有任何代码(它继承了其他一些类),要么它在文件系统中(使用
src=...而不是codebehind=...)。
标签: c# asp.net .net visual-studio-2012 reverse-engineering