我有几个缺少源代码的Web应用程序。该项目被编译为dll并托管在IIS上。
我有几个问题要做。
重新创建的最佳方式是什么? 来自dll文件的项目??
我们正计划改变
数据库服务器和数据库
连接字符串在。中指定
Global.asax(I mean the public
class Global : HttpApplication
)。是
有一种方法可以将其子类化
全局并覆盖连接
字符串?如果是,我怎么能做到
IIS引用新的dll
谢谢大家的任何建议!!
答案 0 :(得分:1)
首先,使用Reflector / ILSpy / dotPeek等反编译工具将IL代码从DLL转换为更高级别的语言,如C#。但是,工具无法获取注释,局部变量名称和项目结构。您需要手动将代码组织到文件和项目结构中。从aspx文件中,您必须找出代码隐藏类,然后将类的源链接到正确的命名代码隐藏文件 - 例如,如果default.aspx说它继承从MyApp.Default
然后创建文件default.aspx.xs并将该类的源代码放入其中。
对于第二部分,您可以创建一个派生自Global
的新类并修改Global.asax以使用该类 - 您需要将包含新类的程序集放在bin文件夹中并覆盖inherits
子句在asax文件中指向新类的类型名称。无论如何,您需要检查当前Global类的代码(使用上面看到的工具),看看是否可以通过子类来覆盖连接字符串。
答案 1 :(得分:0)
将dll反向工程为代码的最佳工具可能是.NET Reflector。不幸的是,最新版本不再免费,但值得花钱。
如果您已经可以对源代码进行反向工程,我不确定这是否仍然适用。但是,我建议将项目外部的连接字符串移动到web.config中作为最佳实践。这样,您可以在不更改任何代码的情况下进行更改。