SQL Server没有源代码,想要更改连接字符串

时间:2013-08-13 20:49:32

标签: .net sql-server c#-4.0 emulation

我在网络应用程序中遇到这种情况:

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

的解决方法

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

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

我还能做什么?

2 个答案:

答案 0 :(得分:2)

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

  • 运行ildasm将DLL反汇编为IL
  • 编辑IL以更改连接字符串
  • 运行ilasm(.NET 1.1版本!)将IL重组为DLL
  • 让管理层非常非常明确表示您处于不可持续的状况。您真的无法在这种状态下运行生产网站。

答案 1 :(得分:0)

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

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