ASP在单个文件中同步写入和读取

时间:2011-01-21 15:23:31

标签: file-io asp-classic vbscript

是我第一次使用ASP(vbscript),所以我需要你的建议。

好的,需要创建一个计数器来跟踪注册表的注册人数。

我认为在vbscript(在ASP文件中)中创建一个函数,该函数从驻留在服务器上的文件(count.txt)中读取计数器,并将其递增1。

这在我测试时有效。但是,当同时进行多个注册时,它是否会起作用(最重要的是它能正常工作)吗?在我看来,这似乎是一种竞争条件(如果它没有完全打破它:))

有没有人知道如何在这些特定技术中解决这个问题?欢迎任何想法和想法。

注意:没有数据库...... :(

提前多多谢谢!

1 个答案:

答案 0 :(得分:0)

我不太熟悉经典的ASP(以及相应的ISAPI扩展处理请求的方式),但以下解决方案可能有效。

您可能希望使用SyncLock语句从多个线程同步对文件的访问(因为所有客户端将由相同的应用程序实例提供服务,但是由正在运行的进程中的不同线程提供服务)。

首先,声明全局变量:

Application.Lock()
Application("SyncFileLock") = New Object()
Application.Unlock()

接下来,在SyncLock语句中使用上面声明的变量:

SyncLock Application("SyncFileLock")
    ' Open the file, increment the counter, close the file
End SyncLock

这将确保多个线程不会同时写入同一个文件。