2011-05-17 55 views
0

我有幾個Web應用程序的源代碼丟失。該項目被編譯爲一個DLL並託管在IIS上。子類全局和重寫Application_Start

我有幾個問題要做。

  • 什麼是從dll文件重新創建 項目的最佳方法是什麼?

  • 我們正計劃改變 數據庫服務器和數據庫 連接字符串中 在Global.asax(I mean the public class Global : HttpApplication)指定。是 有一種方法,我可以繼承這個 全局並覆蓋連接 字符串?如果是的話,我怎麼可以讓 IIS指的是新的DLL

謝謝大家的任何建議!

回答

1

對於第一部分中,使用反編譯工具,如Reflector/ILSpy/dotPeek到IL代碼從DLL轉換爲高級語言,如C#。但是,工具無法取回評論,本地變量名稱和項目結構。您需要手動將代碼組織到文件和項目結構中。從aspx文件中,你必須找出代碼隱藏類,然後將類的源代碼鏈接到正確的命名代碼隱藏文件中 - 例如,如果default.aspx說MyApp.Default繼承,則創建文件default.aspx.xs並將該類的源代碼放入該代碼中。

對於第二部分中,您可以創建Global派生的新類,並修改Global.asax中使用該類 - 你需要把大會在bin文件夾中包含新的類並覆蓋inherits子句中ASAX文件指向輸入新類的名稱。無論如何,你需要檢查你當前的Global類的代碼(使用上面看到的工具)來查看你是否可以通過子類來覆蓋連接字符串。

0
  1. 可能是將dll反向工程化爲代碼的最佳工具是.NET Reflector。不幸的是,最新版本不再免費,但它是值得的。

  2. 我不確定這是否仍然適用,如果你已經可以逆向工程你的源代碼。不過,我建議將您的項目之外的連接字符串移到web.config中作爲最佳實踐。這樣,您可以在未改變任何代碼的情況下進行更改。