2011-01-21 26 views
1

私の最初の経験はASP(vbscript)なので、あなたの助言が必要です。ASP 1つのファイルに同期書き込みと読み取り

Ok登録フォームの登録者数を記録するためのカウンタを作成する必要があります。

私が考えたのは、vbscript(ASPファイル内)でサーバー上のファイル(count.txt)からカウンタを読み取り、1つずつインクリメントする関数を作成することでした。

これはテスト時に機能します。しかし、複数の同時登録が行われた場合、それは機能します(そして最も重要なことは適切に機能するでしょうか)。競合状態(私はそれが完全にそれを壊さない場合:))

誰もどのようにこれらの特定の技術でこの問題を回避するか考えていますか?どんな考えや思考も歓迎されます。

注:何のデータベースがありません... :(くらい事前に

おかげ

答えて

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 

これは、複数のスレッドがで同じファイルに書き込むことはありません保証します同じ時間。

関連する問題