appdomain相关内容

是否可以在 C# 类中为多个计时器设置一个异常处理程序?

我有一个运行系统托盘应用程序的 C# 程序 - 在后台传输/移动/创建/编辑文件. 如果用户手册删除了程序正在使用的文件,有很多异常处理和循环处理可以防止程序崩溃/卡住. 不幸的是,运行程序的其中一台计算机出现程序崩溃.电脑很难拿到,不能装调试软件(是嵌入式的外置电脑,不能上网). 我已尝试查找崩溃的原因(例如未处理的异常),但没有找到任何内容,并且无法访问位于远程位置的 PC. ..
发布时间:2021-11-16 19:12:55 C#/.NET

当委托被传递到另一个 AppDomain 时,是否可以将委托编组为代理?

不知何故,我假设传递给另一个 AppDomain 的委托会变成代理,就好像它是从 MarshalByRefObject 派生的对象.不幸的是,他们似乎没有. 假设在我的代码中我有一个类 MyClass 像这样: [可序列化]公共密封类 MyClass{public FuncSomeDelegate;}[可序列化]公共密封类 Input { ... }[可序列化]公共密封类输出 { ... ..
发布时间:2021-11-16 19:12:52 C#/.NET

从其他 .dll 加载服务并隔离运行

我想以隔离的方式运行来自不同 .dll 的多个服务.基本上,所有服务都源自 RoleEntryPoint ,我想将每个服务加载到单独的 AppDomain 中,并在不同的线程中运行它. 到目前为止,我可以找到该服务并获取其类型: String pathToDll = @"C:\....\bin\Debug\ChildWorkerRole.dll";装配装配 = Assembly.Load ..
发布时间:2021-11-16 19:12:49 C#/.NET

当一个对象从 MarshalByRefObject 派生并且也被标记为 [Serializable] 时会发生什么?

我正在处理我的第一个使用 AppDomains 的项目,我想知道当一个对象从 MarshalByRefObject 派生并标记为 [Serializable] 时会发生什么? 例如: [可序列化]公共类 DummyClass:MarshalByRefObject{} 解决方案 它通过引用进行编组,但仍然可以为其他用例进行序列化以进行序列化.有一个实现细节很有趣,值得一提:为远程处理序列 ..
发布时间:2021-11-16 19:12:46 C#/.NET

插件 AppDomains 解决方法

在处理自己子目录中的插件程序集时,存在一个众所周知的问题,即这些程序集一旦尝试从其子目录加载各自的依赖项,就会加载失败.一个解决方案是在 AppDomains 中加载插件,这些插件在初始化时在它们的 AppDomainSetup 对象中设置了它们的 PrivateBinPath.然而,这会导致有关编组/跨 AppDomain 通信的其他困难,特别是如果插件应该提供一些 GUI. 当安全方面的 ..
发布时间:2021-11-16 19:12:43 C#/.NET

在另一个 AppDomain 中创建类型的实例

我的情况是我有一个创建 AppDomains 的 .net 应用程序(假设是一个控制台应用程序).然后它需要在该 AppDomain 中的类型上创建实例和调用方法.每个 AppDomain 都有一个特定的目录,它的依赖项应该在哪里,它不在(或什至靠近)Console Apps 目录下.这是我的简单代码: string baseDirectory = "c:\foo";// ..
发布时间:2021-11-16 19:12:40 C#/.NET

AppDomains 与强大的服务器

经过一些研究,似乎 AppDomains 并不是构建托管服务器的真正工具.根据我的理解,如果在创建的 AppDomain 中存在未处理的异常(如果从创建的 AppDomain 中的线程抛出异常),托管服务器仍然会崩溃.因此,在这种情况下,如果托管服务器托管了一个泄漏异常的服务,这也会导致默认的 AppDomain 失效. 所以我想从服务器架构的角度来看,没有什么比创建子进程并监控它们更好的了 ..
发布时间:2021-11-16 19:12:37 C#/.NET

如何检查 AppDomain 是否已卸载?

我通过代理在另一个 AppDomain 中使用了一堆对象.它们位于一个单独的域中,因为我需要热交换包含这些对象的程序集,所以我在使用完它托管的程序集后卸载了 AppDomain. 有时我想检查一下我过去是否卸载了 AppDomain(或者它以某种方式自行卸载或其他原因)以进行测试.有没有办法做到这一点? 显而易见的方法是做一些会抛出 AppDomainUnloadedException ..
发布时间:2021-11-16 19:12:34 C#/.NET

受限权限 AppDomain 授权集问题

我有一些代码可以将 Razor 模板动态编译成我执行的程序集一组权限(不能访问文件等). 这适用于我们的开发计算机和我们的测试服务器(Windows 2008 IIS7 x64 .NET 4).但是在我们的生产服务器(相同规格)上,它给出了错误: “加载此程序集将产生与其他实例不同的授权集.(来自 HRESULT 的异常:0x80131401)" 这是代码:- public ..
发布时间:2021-11-16 19:12:31 C#/.NET

沙盒化 AppDomain 中的 SecurityException

我正在尝试使用 C# 作为脚本语言,使用 CSharpCodeProvider(使用 VS2010 和 .NET 4.0).我希望脚本以最少的权限在受限的 AppDomain 中运行.目前,我在尝试实例化 AppDomain 中的类时遇到异常(调用 CreateInstanceAndUnwrap()).下面是一些重现异常的简化代码: 使用系统;使用 System.Collections.Gene ..
发布时间:2021-11-16 19:12:29 C#/.NET

站点重启时缓存不明确

我正在使用单例模式来加载数据库中的一些配置.如果我在数据库中添加一些新配置并重新启动 web 服务,则它不会加载这些设置.为此,如果我确实重新启动了 IIS 服务器,则它可以正常工作. 我不确定它驻留在何处?它是否已加载到 App Domain 中并且我还需要重新启动 AppDomain?我不清楚为什么会这样.因为如果我从 IIS 重新启动服务,它也应该清除应用程序域中的所有信息,但不会发生 ..
发布时间:2021-11-16 19:12:26 其他开发

运行具有不同版本的依赖项 dll 的插件的推荐方法是什么?

我有一个 WCF 插件服务,它通过 MEF 加载插件并运行它们. 每个插件都是一个目录,其中包含多个实现特定接口的 dll. 我使用 MEF (DirectoryCatalog) 在同一个 AppDomain 中加载所有插件并以通用方式运行它们(使用反射). 现在假设我有两个具有 dll 依赖项的插件: 插件1---->实体 1.0.0.1插件2---->实体 1.0.0.2 ..
发布时间:2021-11-16 19:12:23 C#/.NET

AppDomain 等待异步任务阻止 SerializationException

我有一个 Windows 服务,它在运行时在另一个 AppDomain 中加载程序集.然后它执行它们并最终卸载 AppDomain.问题是插件的 execute 方法是异步任务,我得到了 SerializationException,因为 Task 不是从 MarshalByRefObject 继承的. 我将插件包装在继承自 MarshalByRefObject 的代理中,但我不知道如何摆脱 ..
发布时间:2021-11-16 19:12:20 C#/.NET

传递一个对象以从进程中创建的子 AppDomain 接收回调到默认 AppDomain

地点: 我正在从我的进程中创建一个子应用程序域来加载程序集. 我可以调用此 AppDomain. 我想将一个对象从我的默认进程 AppDomain 传递到这个新创建的 AppDomain,以接收从新 AppDomain 中加载的程序集到我的默认 AppDomain 的回调. 我发现的一种方法是使用 AppDomain.DoCallback 方法,但不确定如何在我的子 AppDoma ..
发布时间:2021-11-16 19:12:17 C#/.NET

一个应用程序域可以限制在一个目录中吗?

我正在开发一个插件主机.插件应该有尽可能少的信任,但是我希望插件有可能读取和写入文件. 是否可以限制加载程序集的 AppDomain 只能访问一个目录进行读写? 其他选项和方法也很受欢迎,例如将文件数据从主机流式传输到插件(读取)和从插件到主机(写入)的简单方法. 如果相关:我正在为插件使用 MAF 基础架构.http://msdn.microsoft.com/en-us/lib ..
发布时间:2021-11-16 19:12:13 C#/.NET

卸载 appdomain 时出错.(来自 HRESULT 的异常:0x80131015),在 Windows 服务中

我在 Windows 服务中收到此错误.这与我之前在我的问题此处 修改代码以使用Parallel.ForEach(我自己的版本,因为这是一个3.5 Windows 服务).使用 Parallel 的原因归结为 Unload 每个域花费的时间太长,并且并行运行它们应该被证明更快(似乎即使每个 Unload 只有一个线程正在执行?!). 基于其他帖子,我只能猜测这在某种程度上归结为我使用 ..
发布时间:2021-11-16 19:12:10 C#/.NET

如何优雅地卸载运行线程的子 AppDomain

我有一个服务,它加载一个子 AppDomain,然后启动一个在其中运行的线程.它需要一个 AppDomain,因为它会动态生成和加载一些代码,我需要能够在不终止整个服务的情况下重新启动它. 所以有一个线程在子 AppDomain 的事件循环中运行,它通过 MarshalByRefObject 获取传递给它的事件,该对象将内容粘贴在并发队列中.我想停止并卸载子 AppDomain 并创建一个新 ..
发布时间:2021-11-16 19:12:07 C#/.NET

AppDomain.Unload 在终结器中抛出?

所以这是到目前为止的故事,我有一个使用 AppDomain 执行某些任务的工人东西.该域的设置和拆除成本很高.所以我为每个线程创建一个 WeakReference 对象的缓存给工作人员,就像这样: class Worker{[线程静态]静态字典_工人;public static Worker Fetch( ... ) { 你懂的 }私有 AppDomain _domain;公职人员(...){_ ..
发布时间:2021-11-16 19:12:04 C#/.NET

列出存储在 AppDomain 中的所有自定义数据

为了在发生错误时存储进程的状态,我想列出存储在 AppDomain 中的所有(自定义)数据(通过 SetData).LocalStore 属性是私有的,AppDomain 类不可继承.有没有办法枚举这些数据? 解决方案 AppDomain domain = AppDomain.CurrentDomain;domain.SetData("testKey", "testValue");Fie ..
发布时间:2021-11-16 19:12:01 C#/.NET