我有一個帶有.asmx擴展名的Web服務,它指向我的Web應用程序中的類。在應用程序啓動時添加一些代碼以輸出調試日誌後,我可以看到每次用戶訪問該頁面時都會創建一個新的調試日誌。ASMX服務共享單個類實例
我希望我可以配置這個Web服務只能使用一個實例。
這意味着,當第一個用戶訪問該站點時,它創建了我的web服務的一個實例,然後所有請求都通過同一個類路由,共享相同的狀態。
這甚至可能嗎?
我有一個帶有.asmx擴展名的Web服務,它指向我的Web應用程序中的類。在應用程序啓動時添加一些代碼以輸出調試日誌後,我可以看到每次用戶訪問該頁面時都會創建一個新的調試日誌。ASMX服務共享單個類實例
我希望我可以配置這個Web服務只能使用一個實例。
這意味着,當第一個用戶訪問該站點時,它創建了我的web服務的一個實例,然後所有請求都通過同一個類路由,共享相同的狀態。
這甚至可能嗎?
網站本質上是無國籍的。意思是,每個請求通常與任何其他請求無關。
也就是說,您可以將日誌設置爲您的global.asax文件中的靜態變量。注意線程問題。您也可以查看Elmah。
你似乎有一些問題。
首先,ASMX技術已經過時了,不應該用於新開發。應該使用WCF來代替。
接下來,是的,你可以有多個調用服務共享同一個類的實例。但是,除非線程安全,否則必須防止同時訪問此類。您應該期望多個服務調用可以同時調用同一個類實例。
最後,ASMX不支持單件Web服務。您可以做的最好的做法是讓多個服務電話共享同一個對象(小心鎖定)。
您需要Web服務的多個實例。否則,每個入站HTTP請求都會被其前面的任何請求阻塞。您可以使用靜態變量來存儲特定的信息 - 但要小心,以最大限度地減少您要保留的數據的使用。 – Mike 2013-02-27 01:41:38