2011-05-19 146 views
0

我可以更改访问权限或编辑Global.asax中指定的值吗?原因是我没有源代码,我们现在需要的唯一更改是更改Global.asax.vb文件中指定的连接字符串(数据库)。从IIS更改Global.asax变量

谢谢!

回答

0

那么,我能够绕过这个问题。不是很优雅,可能会增加性能负载,但考虑到重新创建项目所涉及的工作是最简单的。

我创建了另一个aspx页面,并使用Page的Page_Load中的Application对象设置连接变量,然后对之前的默认文件执行response.redirect。我很幸运,因为所有代码都引用了应用程序对象,并且这只是在Global.asax中设置的 - 如果有任何直接指定连接字符串的代码 - 那么我就会被搞砸了!

唯一的开销是Application_Start只会被调用一次 - 但每次发出请求时都会使用Page_Load覆盖这些值。我愿意做的一种折衷。

我不能同意以前的答案,因为它提到了“理想”案例和最佳实践 - 它没有解决我的问题。如果以前的sql server可以完全降级,应该采用以前的解决方案。

谢谢!

4

通常,由于这个原因,连接字符串在Web.config中指定。如果这些值是硬编码的,那么除非您可以更改代码,否则无法修改它们。您可以设置相同的数据库(名称,信誉)并更改一些配置设置,以便您的数据库服务器解析为相同的计算机名称。这就是我所能想到的......

+0

他也可以使用RedGate的Reflector进行反编译......这总是很有趣。由此产生的代码不是很漂亮,但它是可读和可编辑的。对我来说,如果这是一个我期望支持长期的应用程序,那么只需将连接字符串放入它们所属的web.config中即可。 – David 2011-05-19 19:18:45

+0

是的 - 以前的开发人员做了这一切:(反编译给了我的代码,但它不容易编译 - 必须结构和做大量的管道工程.. – Sekhar 2011-05-19 19:20:32

+0

是的,我的“总是有趣”是舌头在脸颊唯一的其他希望之光我能想到的是 - 如果服务器名称是cnnection字符串中唯一更改的内容,但其他所有内容都保持不变,则可以在知道IP的情况下编辑hosts文件如果旧服务器名称为IP地址为1.1.1.1的“Server1”,新的名称为IP地址为1.1.1.2的“服务器2”,则可以通过指定“服务器1”位于IP 1.1.1.2来欺骗主机文件,或者将其设置为DNS http ://www.bleepingcomputer.com/tutorials/tutorial51.html – David 2011-05-19 19:56:21