草庐IT

appDomain

全部标签

c# - 如何使用 C# 正确卸载 AppDomain?

我有一个加载我无法控制的外部程序集的应用程序(类似于其他人创建和开发主应用程序使用的程序集的插件模型)。它通过为这些程序集创建新的AppDomains来加载它们,然后当这些程序集被使用完毕时,主AppDomain卸载它们。目前,它简单地unloads这些组件由try{AppDomain.Unload(otherAssemblyDomain);}catch(Exceptionexception){//logexception}但是,有时会在卸载过程中抛出异常,特别是CannotUnloadAppDomainException.据我了解,这是可以预料的,因为子AppDomains中有一个线

c# - 在不同的 AppDomain 中加载/卸载程序集

我需要在运行时加载的程序集中执行一个方法。现在我想在方法调用后卸载那些加载的程序集。我知道我需要一个新的AppDomain以便卸载库。但是这里,问题出现了。要加载的程序集是我的插件框架中的插件。他们根本没有入口点。我所知道的是它们包含一些实现给定接口(interface)的类型。旧的非AppDomain代码如下所示(略有缩短):try{stringpath=Path.GetFullPath("C:\library.dll");AppDomain.CurrentDomain.AssemblyResolve+=CurrentDomain_AssemblyResolve;Assemblyas

c# - 在不同的 AppDomain 中加载/卸载程序集

我需要在运行时加载的程序集中执行一个方法。现在我想在方法调用后卸载那些加载的程序集。我知道我需要一个新的AppDomain以便卸载库。但是这里,问题出现了。要加载的程序集是我的插件框架中的插件。他们根本没有入口点。我所知道的是它们包含一些实现给定接口(interface)的类型。旧的非AppDomain代码如下所示(略有缩短):try{stringpath=Path.GetFullPath("C:\library.dll");AppDomain.CurrentDomain.AssemblyResolve+=CurrentDomain_AssemblyResolve;Assemblyas

c# - 如何创建应用程序域并在其中运行我的应用程序?

我需要创建一个自定义应用程序域来解决.NET运行时的defaultbehavior中的错误。.我在网上看到的示例代码都没有帮助,因为我不知道将它放在哪里,或者它需要在我的Main()方法中替换什么。 最佳答案 可能应该注意的是,创建AppDomains只是绕过一些可以用常量字符串修复的东西可能是错误的方法。如果您尝试执行与您注意到的链接相同的操作,您可以这样做:varconfigFile=Assembly.GetExecutingAssembly().Location+".config";if(!File.Exists(config

c# - 如何创建应用程序域并在其中运行我的应用程序?

我需要创建一个自定义应用程序域来解决.NET运行时的defaultbehavior中的错误。.我在网上看到的示例代码都没有帮助,因为我不知道将它放在哪里,或者它需要在我的Main()方法中替换什么。 最佳答案 可能应该注意的是,创建AppDomains只是绕过一些可以用常量字符串修复的东西可能是错误的方法。如果您尝试执行与您注意到的链接相同的操作,您可以这样做:varconfigFile=Assembly.GetExecutingAssembly().Location+".config";if(!File.Exists(config

c# - 从 MVC 查询 Active Directory 结果为 : Attempted to access an unloaded appdomain.(HRESULT 异常:0x80131014)

我在MVC网络应用程序中使用.Net4上的c#时遇到问题,当我查询ActiveDirectory时,我经常收到错误:Attemptedtoaccessanunloaded应用程序域。(HRESULT的异常:0x80131014)。奇怪的是,它会在一段时间内完美运行,然后它会开始发生,然后再次消失。我对该函数进行了一些修改以使其正常工作,但它们似乎都失败了。我想知道我是否做错了什么,或者是否有更好的方法。这是我当前的函数,它将接受一个loginId和一个PrincipalContext。loginId可以是用户DisplayName即“JohnSmith”,也可以是DOMAINNAME\

c# - 从 MVC 查询 Active Directory 结果为 : Attempted to access an unloaded appdomain.(HRESULT 异常:0x80131014)

我在MVC网络应用程序中使用.Net4上的c#时遇到问题,当我查询ActiveDirectory时,我经常收到错误:Attemptedtoaccessanunloaded应用程序域。(HRESULT的异常:0x80131014)。奇怪的是,它会在一段时间内完美运行,然后它会开始发生,然后再次消失。我对该函数进行了一些修改以使其正常工作,但它们似乎都失败了。我想知道我是否做错了什么,或者是否有更好的方法。这是我当前的函数,它将接受一个loginId和一个PrincipalContext。loginId可以是用户DisplayName即“JohnSmith”,也可以是DOMAINNAME\

c# - 如何避免 SerializationException : Type is not resolved for member XXX when testing a component that uses the LogicalCallContext

当EF尝试从App.config加载信息时,我最近开始在我的单元测试(NUnit)代码中遇到以下异常:System.Runtime.Serialization.SerializationException:Typeisnotresolvedformember[mytypename],[myassemblyname]NUnitGUI运行器和R#的VS集成运行器都会发生这种情况。这是重现问题的快速单元测试:[Test]publicvoidTest(){//adding//ConfigurationManager.OpenExeConfiguration(ConfigurationUserL

c# - 如何避免 SerializationException : Type is not resolved for member XXX when testing a component that uses the LogicalCallContext

当EF尝试从App.config加载信息时,我最近开始在我的单元测试(NUnit)代码中遇到以下异常:System.Runtime.Serialization.SerializationException:Typeisnotresolvedformember[mytypename],[myassemblyname]NUnitGUI运行器和R#的VS集成运行器都会发生这种情况。这是重现问题的快速单元测试:[Test]publicvoidTest(){//adding//ConfigurationManager.OpenExeConfiguration(ConfigurationUserL

c# - 如何防止 CompileAssemblyFromSource 泄漏内存?

我有一些C#代码使用CSharpCodeProvider.CompileAssemblyFromSource在内存中创建程序集。程序集被垃圾回收后,我的应用程序使用的内存比创建程序集之前多。我的代码在ASP.NET网络应用程序中,但我在WinForm中复制了这个问题。我正在使用System.GC.GetTotalMemory(true)和RedGateANTSMemoryProfiler来测量增长(示例代码大约600字节)。从我所做的搜索来看,这听起来像是泄漏来自新类型的创建,而不是真正来self持有引用的任何对象。我找到的一些网页提到了有关AppDomain的内容,但我不明白。有人可