我们继承了一个大小约为40GB的网站(主要来自用户提交的内容),它混合了经典ASP,内联.Net和与之相关的编译.Net。技术上有两个与此相关的站点,为了节省磁盘空间,我故意设置IIS使两个物理站点指向同一个文件夹,但使用独立的应用程序池来分隔工作进程。
我们遇到的问题偶尔会在您访问其中一个网站时似乎以某种方式从其他网站获取应用程序变量。从我在这里看到的一切/ Bing,工作进程应该是独立的,因为独立的应用程序池,但我想知道经典的ASP是否会以某种方式抛出它?鉴于所有可以想象的混合物(有大约4,200个物理.asp / .aspx文件,后者大部分从03_开始,因为这是我参与之前选择开始迁移到.Net的方法),是否更好地拥有这些作为独立的网站和文件夹?我似乎无法弄清楚为什么应用程序变量在流中被翻转,但它导致了许多问题 - 特别是因为连接字符串也是应用程序变量,并且这个东西背后有两个数据库。
任何提示?经典ASP的工作方式与应用程序变量/工作进程的角度不同吗?
附注 - 我知道应用程序变量在.Net世界中是一个糟糕的选择,特别是对于连接字符串。我正在努力纠正这个问题,但这是一项巨大的工作,其中存在零文档或评论,并且无处不在。
答案 0 :(得分:2)
除非Classic ASP站点和.NET应用程序之间有意交换**甚至在同一站点上运行(!!!)但由于显而易见的原因单独的应用程序池,例如使用应用程序变量来存储值,所以没有办法经典的asp会将变量传递给.NET应用程序。甚至会话变量也不在Classic ASP和NET之间共享。它必须在代码中有意识地完成。
例如,如果您使用iframe并将url字符串中的变量从.NET应用程序传递到经典ASP页面或返回,或者只是从经典ASP页面调用NET应用程序并在URL字符串或诗句中传递变量。
**或者如果您在同一个域下运行,则使用Cookie在应用程序之间共享值。