正在第二个AppDomain中运行服务

本文关键字:运行 服务 AppDomain 第二个 | 更新日期: 2023-09-27 17:59:46

我有一个对象正在实例化到它自己的AppDomain中。主要原因是它调用了我不控制的代码(第三方dll),如果我需要中止线程,我可以这样做,然后销毁AppDomain,以确保不会发生任何不稳定的事情。这部分工作正常。

但是,这个对象还有一个对我控制的ServiceReference的引用。由于服务引用位于第二个AppDomain中的对象中,因此我得到了一个序列化异常,因为该服务未标记为Serializable。服务引用只是Visual Studio为我生成的代理,我不确定解决此问题的正确方法。

我应该使用不同的设计吗?或者有一种简单的方法可以在单独的AppDomain中运行服务吗?

谢谢,Scott

正在第二个AppDomain中运行服务

如果我正确理解了你的问题,你需要使用像.Net Remoting这样的东西在应用程序域之间使用对象。

解决了我的问题。我将类型标记为[Serializable],而不是从MarshalByRefObject派生它。一旦我弄清楚了这一点,一切似乎都开始运转良好。

然而,现在我使用这个新型号有几个CPU周期,我对此不满意,正在寻找另一种方法。我稍后会发布一个单独的"设计"问题。

谢谢,

Scott