0

我在 Web 应用程序中遇到了这种情况:

-我没有源代码 -我们需要尽快更改数据库服务器 -为了让应用程序正常工作,我们需要更改连接字符串或找到解决方法

这是一个 .NET 1.1 应用程序,连接字符串位于 .dll 中。¿ 我有什么选择?上次我们更改服务器时,我们将所有内容放在同一台服务器(包括数据库服务器)中,然后我们将数据库服务器的 ip 添加到新服务器中......但现在不可能,因为数据库服务器将托管在其他地方。

有没有办法“模拟”最后一个服务器的 ip?

我还可以做些什么?

4

2 回答 2

2

假设 DLL 也是一个 .NET DLL,我会考虑以下内容:

  • 运行ildasm将DLL反汇编成IL
  • 编辑 IL 以更改连接字符串
  • 运行ilasm(.NET 1.1 版本!)将 IL 重新组装成 DLL
  • 让管理层非常非常清楚您处于不可持续的境地。你真的不能在这种状态下运行一个生产网站。
于 2013-08-13T20:56:10.220 回答
0

如果连接字符串被硬编码到 .DLL 中,并且如果它使用名称来引用服务器(而不是其 IP),那么如果您有权访问,您可能希望更改运行网站的服务器上的 hosts 文件,因此它指向改为新的数据库服务器。另一种选择可能是使用 SQL 本地客户端的别名功能将连接重定向到其他地方。但如果连接字符串使用 IP 地址,我认为这些方法行不通。再次,如果您具有这种访问权限,则更改 Web 服务器的本地 IP 地址可能会允许其他服务器代替它。如果您不能真正更改连接字符串,则没有什么是 100% 可靠的。

从长远来看,我认为最好的机会是,如果您可以尝试反汇编 DLL 并修改连接字符串,以便从某个配置文件中读取,而不是硬编码,然后重新编译,然后从配置中修改参数.

于 2013-08-14T02:56:37.330 回答