IIS6'da barındırılan web hizmetimizde kullanılan bir üçüncü taraf dll'si var. Sorun şu ki, bu dll belleğe yüklendiğinde, AccessViolationException istisnası farklı bir iş parçacığı farklıysa, o zaman dll içinde herhangi bir kodu çalıştırmaya çalışır. Çalışan işlemi çok iş parçacıklı ve web servisine yapılan her çağrı havuzdan rastgele bir iş parçacığı alacak. Onu bellekten boşaltmaya ve ihtiyacımız olan her defasında yeniden yüklemeye çalıştık, ama sanırım sadece ön uç. Net ve geri kalanı yönetilemediğinden, bellekten asla tamamen boşaltılamaz. VB ve .NET 2.0 kullanıyoruz. Baska öneri?IIS'de aynı iş parçacığı kod yürütmek için nasıl kullanılır?
(Rob Walker Yanıt)
Biz yeni bir iş parçacığı oluşturma ve dll aramaya kullanmadan düşündü, ama nasıl iplik sit yapmak ve aramalar için beklemek yok? Dispatcher sınıfının .Net 3.0 tarafından tedarik edilmesine gerek kalmadan aramayı nasıl temsil edersiniz? Gizli bir form oluşturmak ve onu mesaj döngüsüne koymak işe yarayabilir. Ve sonra formun Invoke() yöntemini çağırabiliriz. Ancak, IIS tarafından barındırılan bir web hizmetinde bir form oluşturduğumuzda ortaya çıkan birçok sorunu görebiliyorum.