问题标签 [appdomainsetup]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net-assembly - 无法在 appDomain 中加载程序集
直到最近我通过调用 Assembly.LoadFrom 来加载我的程序集,这没关系。但是现在我需要将它加载到一个临时的 appDomain 中,但是在尝试将程序集加载到临时域中时,我一直遇到 FileLoadException。我试图将 appDomainSetup 参数传递给 CreateDomain 方法,但没有成功。
这是我的代码。
我的程序集位于我的应用程序基目录的子目录中
c# - ApplicationBase 外的 PrivateBinPath
我的目录结构如下所示:
HostProgram.exe
正在尝试加载HostedLib.dll
,这取决于SharedLib.dll
.
因此,我SharedLib.dll
正在创建以加载它,但它需要能够找到.ApplicationBase
AppDomain
/Host Program Base/HostedLibs/
SharedLib.dll
我试图添加..
到PrivateBinPath
forAppDomain
但根据MSDN,
私有程序集部署在与应用程序相同的目录结构中。如果为 PrivateBinPath 指定的目录不在 ApplicationBase 下,它们将被忽略。
由于PrivateBinPath
不在 内部ApplicationBase
,而是在一个目录中,因此它不在内部ApplicationBase
并且被忽略。因此,AssemblyResolveException
当我尝试将 DLL 加载到新的AppDomain
.
我还尝试将 设置ApplicationBase
为Host Program Base
文件夹并添加HostedLibs
为PrivateBinPath
,但这会导致域根本无法解析HostedLib.dll
。
那么->如何ApplicationBase
使用AppDomainSetup
?
google-app-engine - GAE - 域验证产生错误
在过去的几个月里,我一直在按照这些说明https://developers.google.com/appengine/articles/domains向应用程序添加域,没有任何问题
由于过去两天我一直无法,当单击激活此服务时,我收到此错误消息“尝试安装此应用程序时发生错误。请稍后再试。”
我也尝试过使用较旧的域和不同的应用程序并得到相同的错误,因此问题似乎更普遍,而不是孤立于特定域/应用程序。
有谁知道如何解决?
c# - 如何让 AppDomainSetup.SetConfigurationBytes() 工作?
在我的应用程序中,我正在创建沙盒域,我需要动态定义绑定重定向规则。但是,我既不能使用 SetConfigurationBytes 方法传递 ConfigurationFile 设置也不能传递原始 xml 数据。
我创建了一个示例来检查配置数据是否应用于子域:
其中 Verifier 是具有一种方法的普通类:
更新 上面代码的第一个问题是,它必须从 MarshalByRefObject 继承,才能将 DebugPrint 调用编组到子 appdomain,而不是调用在当前域中创建的副本(感谢 sthotakura)。结果 ConfigurationFile 设置开始起作用。但是 SetConfigurationBytes 仍然没有运气。无论如何,目标是定义通过 SetConfigurationBytes 传递的绑定规则。
c# - 具有专有 DLL 的应用程序域
我有一个 ASP.NET C# 应用程序,它需要执行另一个应用程序域中专有 DLL 中的代码。似乎我能找到的大多数代码都需要我制作对象MarshalByRefObject
,但由于它们在另一个 dll 中,我真的无法访问它们。理想情况下,我想只调用另一个 AppDomain 中的专有 dll,但我真的不知道该怎么做。
asp.net - 如何使用 PowerShell 确定 \Temporary ASP.NET Files\root\{site hash}?
ASP.NET 使用临时文件目录来存储用于影子复制和动态编译的文件。典型的路径将如下所示。请注意路径末尾的哈希。
我正在使用自动部署,并注意到这些文件夹及其内容不会自动删除。作为部署过程的一部分,我想自动化删除未使用的临时文件的过程。这样,一旦部署了我的站点的新版本,旧的临时文件就会被删除。
哈希似乎是以确定性的方式生成的,所以我希望我能够将哈希确定为我的部署前脚本的一部分,并在部署后将其删除。
如何为 ASP.NET 网站计算哈希?
参考:
c# - 使用 .NET 程序集而不锁定 dll 文件
我有一个每天执行一次的 Windows 服务。这只是10分钟的行动。
我在网站的 bin 文件夹中构建服务的文件,因为该服务使用网站的 dll。
不幸的是,我注意到当我安装网站模块(网站安装程序的 dotnetnuke .zip 模块)时,我收到一个错误,即文件被另一个进程锁定。
在安装每个模块之前禁用服务是非常有问题的,所以我想让我的服务不锁定其中使用的 dll。
我阅读了有关 AppDomain 和 ShadowCopyFiles 选项的信息,但我无法让它们为我工作。
这是我如何使用 ShadowCopyFiles 的示例:
示例汇编代码:
私有缓存已创建且未锁定,并且原始文件已锁定。<-现在这对我来说很荒谬。
c# - C# appdomain 权限无线程
我创建 appdomains 来动态加载 dll 到 - 如所假设的那样。
然而,我没有设法阻止一个未处理的异常终止整个事情——因为这似乎是不可能的。
但是,如果我可以禁止在 3rd 方 dll 中创建新线程,我真的不必这样做。
有没有办法在自定义 AppDomain 中禁止线程创建(可能还有任务创建),如果是:如何?
PS:我已经了解了 System.AddIn。如果没有人给出肯定的答案,我会看看它。
c# - 跨 AppDomain 的自定义序列化
简短版本:我正在尝试自定义跨 AppDomain 边界的序列化,特别是为了处理 AppDomain 的每一侧都有稍微不同的类版本的情况。我该怎么做呢?
长版:我们使用 AppDomains 来管理更大应用程序下的不同子模块。我们希望独立部署这些子模块,因此使用 AppDomains。我们在主应用程序和子模块之间有一个共享的contracts dll,不同版本的contracts dll 最终会出现在各个子模块中,因为每个子模块的更新频率都低于主应用程序。结果,有时会在contracts dll中添加一个新字段或新类型,并在主应用程序中使用,但子模块不知道如何序列化它。
我想我可以通过自定义序列化过程来解决这个问题,特别是 SerializationBinder.BindToType。但是要做到这一点,我需要告诉 AppDomain 的每一端都使用这个序列化绑定器。我该怎么做呢?我在网上看到的所有示例都有对 Serialize() 和 Deserialize() 的显式调用。我初始化 AppDomain 的代码是:
感谢您在这方面的帮助。
appdomain - 添加当前 AppDomain 的路径
我有两个完全不同的目录。目录 1 包含我的应用程序,目录 2 包含很少的程序集。在应用程序启动的运行时,我将加载程序集。默认情况下,执行程序集的 AppDomain 将发现目录 1(应用程序文件夹)或 GAC 中的程序集。如果文件不存在,我们将收到错误消息。但我还必须扩展 AppDomain 的搜索目录以在 Directory 2 中搜索。也就是说,AppDomain 将搜索 Directory1(本地 bin),然后是 GAC,然后是其他默认值,最后在 Directory 2 中搜索。
我尝试过: 1. 通过设置 PrivateBinPath,但它仅限于 ApplicationBaseDirectory。2.通过AssemblyResolve,但不直接引用。AssemblyResolve 代码也永远不会命中。