2011-08-31 69 views
7

我继承的遗产传统的ASP网站,我需要支持,而我在建立一个开发/调试环境的过程,所以我没有在生产服务器上运行。在经典诵读web.config中值ASP

的代码是一个有点乱,并有数百literaly连接字符串的周围各种.asp文件的地方点缀。这些都包含SQL服务器的硬编码引用等。

我真的不想用我的本地开发环境SQL DB设置来替换所有这些,所以我想知道是否有一个简单的方法获取经典的asp从.net web.config文件读取。通过这种方式,我可以将所有硬编码的连接字符串更改为从这个位置读取,然后我只需要在一个位置定义服务器详细信息。

这意味着我可以在本地编写代码&调试,而我所要做的就是在部署之前更改web.config中的一些值。

请提供你的答案明显的例子,因为我是新来的传统的ASP &我真的不是在这个阶段喜欢它。不能等待重建这一切在.NET;)

感谢

回答

5

只需使用一个服务器端包含你需要的所有应用程序设置。与读取web.config相比,实现起来会更容易(也更快),并且给你相同的灵活性。

config.asp里

<% 
Dim connectionString 
connectionString = "your connectionstring here" 
%> 

Default.asp的

<% Option Explicit %> 
<!-- #include virtual="config.asp" --> 
<% 
'--- 
' ... use connectionString here 
'--- 
%> 

从你告诉你可以改善在其他地方使用SSI太贵遗产的其余部分。

+0

感谢的,是有负载我可以做些什么来改善它,但就我个人而言这是死代码。我想尽量少用它做与从头开始重建吧:) – Bob

+0

@bob:但使用文件扩展名.ASP不.INC。如果IIS服务器具有。*映射,则可能意外使外部机器可以下载/config.inc。如果连接字符串可以包含用户名和密码,那么它不是您想要允许外部访问的内容。 – AnthonyWJones

+0

@Anthony好点 - 我相应地更新了我的答案。 – Filburt

20

通常发生在传统的ASP做,这是在global.asa文件的应用程序变量:

SUB Application_OnStart 
    application("connectionstring")= "[your connectionstring]" 
END SUB 

然后你可以在每一页上使用application("connectionstring"),而不必在页面上包括。

+2

+1我没意识到你可以做到这一点。 –

+1

+1清洁的代码,易于使用。漱口[这](https://www.w3schools.com/asp/asp_globalasa.asp)页面了解更多关于global.asa文件 –

+0

之前没想到的是..:-o(伟大的方式在2017年做到这一点);) – yaqoob