问题标签 [appdomain]

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.

0 投票
1 回答
1480 浏览

c# - C# 应用程序域私有 bin 路径更新

有谁知道是否可以更改当前应用程序域的 AppDomain.CurrentDomain.SetupInformation.PrivateBinPath?还是这只影响未来的appdomain实例..

谢谢。

0 投票
3 回答
20661 浏览

asp.net - 如何保持 AppDomain 中的 ASP.NET 程序集处于活动状态?

场景:我有一个使用 Web 部署项目部署的 n 层企业 ASP.NET 应用程序。所有层都生成由 ASP.NET 应用程序使用的独立程序集。

问题:当我运行应用程序时。部署后第一次需要花费大量时间将依赖程序集加载到内存中。但是一旦加载了它的快速照明应用程序。如果没有用户访问该应用程序,IIS 会从内存中卸载程序集,当用户尝试在以后的实例上访问该应用程序时,它会再次加载所有程序集,加载时间与加载时间相同第一次这样做。

我正在寻找一种解决方案,使我能够将我的程序集持久地加载到内存中,从而覆盖程序集对内存驻留的易失性。

或任何其他让我的用户愉快地使用解决上述问题的应用程序的解决方案。

0 投票
1 回答
650 浏览

.net - AppDomain 程序集加载导致致命的执行引擎错误 (6B3979C6) (80131506)

我们有一个类型缓存系统,以避免在每次应用程序启动时搜索所有类型的所有插件程序集,但是当从 .NET 1.1 移动到 2.0+ 时,事件日志会记录一个致命的执行引擎错误 (6B3979C6) ( AppDomain.Load() 上的 80131506)

当且当 1. AppDomain 不是 AppDomain.CurrentDomain。2. 程序集不在可执行文件的目录中。

我们允许用户在特定于项目的目录中提供他们自己的程序集,因此我们无法解决 2。

我相信 1. 是需要的,因此我们可以在浏览类型后将 AppDomain 卸载到。

我不是此代码的所有者,但如果我没有提供足够的信息,我可以提出正确的问题。

此代码导致无法捕获的错误:

0 投票
1 回答
572 浏览

.net - .NET 应用程序域和 ASP.NET

我们都知道 .NET 架构引入了应用程序域的概念。ASP.NET 为在 Web 服务器上运行的每个 Web 应用程序创建一个应用程序域。使用流程查看器,您将看不到单个 Web 应用程序正在执行的流程,因为没有为它们创建新流程。

如何查看各个 Web 应用程序的统计信息,例如:

  • CPU使用率,
  • 内存使用情况和您通常可以使用进程查看器查看的任何其他统计信息?
0 投票
2 回答
487 浏览

.net - 如何检测应用程序关闭?

我正在服务器应用程序中构建一个组件,该组件管理我的应用程序和外部服务之间的连接。我的组件检测到服务器何时不可用,启动后台线程直到服务可用,然后重新进入“工作”状态。

我的问题是,如果调用组件的进程在该线程运行时退出,则应用程序将在线程退出之前终止。基本上,如果此服务可用,我的应用程序将无法关闭。

我的问题:有没有办法检测应用程序是否试图关闭以便任何后台线程可以退出?我注意到 AppDomain 类上有几个事件,但我不确定它们会在什么条件下以及在什么环境中被触发。

因为这是一个低级组件,我不希望它知道它运行的环境的任何信息,我也不希望更高级别的组件需要告诉它它正在关闭。

这个组件将在 WCF 服务和 Windows 服务应用程序中使用,而且我还在 WinForm 客户端应用程序中进行测试。

0 投票
3 回答
1876 浏览

c# - 不同 AppDomain 中使用的类的静态变量

我有两个引用同一个类库的可执行文件。在类库中,我有一个静态变量。该静态变量如何保留在两个不同的可执行文件上?

这是它的外观:

应用 1:

应用 2:

0 投票
2 回答
1582 浏览

wcf - WCF 自托管性能

我正在使用 WCF 和 NetTCP 服务编写企业级应用程序。我最初出于好奇选择了 NetTCP,但后来确定它对我来说是最佳选择,因为由于涉及的数据处理量,我可以拥有需要 5 个多小时才能返回结果的调用服务。

我目前产生我的服务的方式是一个多步骤的过程。我有一个配置部分(使用 System.Configuration),它指定了一些默认内容(端口号、连接客户端的服务器名称、是否启用 HTTP 以及 NetTCP 等),并且在下面有一个“服务”集合它。例如,这是一个基本的样子:

基本上这里发生的事情是我的 Windows 服务启动并查看 <services /> 集合中的所有内容,并为每个服务生成一个线程以加快启动时间,每个线程都包含一个 AppDomain 服务真正存在的地方,所以如果服务有某种类型故障它不会使系统停机。

我遇到的“问题”是这个应用程序托管了大约 20 个服务,并且所有服务都需要 15-20 秒才能启动并运行。我做了线程和 AppDomain 部分以将其降低到该值(过去通常需要一分钟,因为每个服务都是按顺序打开的),但在我看来,这实际上可以快得多。

有人有什么建议吗?谷歌必应有大量托管一项服务的示例,但我在现实世界的应用程序中没有找到太多的例子(遗憾的是,“Hello World”对最终用户没有吸引力)。如果您当前通过 Windows 服务和 NetTCP 托管多个服务,您是如何做到的?

0 投票
3 回答
12924 浏览

c# - 如何为 .NET 应用程序域重新加载程序集?

我们正在加载读取配置文件的程序集(DLL)。我们需要更改配置文件,然后重新加载程序集。我们看到第二次加载程序集后,配置没有变化。有人看到这里有什么问题吗?我们省略了配置文件中读取的细节。

0 投票
1 回答
560 浏览

.net - 在 AddInProcess 中激活 AddInToken 时控制 AppDomainSetup

在 .net 中,可以在新的 AppDomain 中创建 AddIn。创建新的 AppDomain 并不是什么新鲜事,可以使用 AppDomainSetup 类来指定新创建的 AppDomain 的所有启动参数(例如在哪里可以找到 app.config)。但是,当使用新的 AddInProcess 激活 AddInToken(它指定 AddIn 应在一个全新的进程中实例化)时,无法直接访问将用于在新进程中创建 AppDomain 的 AppDomainSetup 参数。

有没有办法做到这一点?我真的需要能够强制我的新插件使用新的 app.config 设置,以及 AppDomain 上的各种其他自定义。

感谢您在这里的任何帮助...

0 投票
1 回答
654 浏览

asp.net - ASP.Net 中的 App_Code 是否将新代码编译为辅助临时 AppDomain?

我试图更好地理解 App-Code 文件夹是如何运行的,特别是我很好奇 App-Code 文件夹中的新类如何包含在当前 AppDomain 中。是否以与使用 CodeDom 编译新对象时相同的方式创建第二个临时 AppDomain?

在许多方面,将新类/对象移动到 Web 应用程序中的能力非常引人注目。Rob Connery 的MVC Storefront就是一个很好的例子。如果您使用 App-code 文件夹来部署新功能,是否应该考虑任何权衡或陷阱?

更新:

在 CoDe Magazine 中找到了一篇文章,其中有一段有趣的段落:

您的应用程序特定代码可以内联到 ASPX 页面或控件,它可以进入 CodeBeside 部分类,或者您可以在 APP_CODE 文件夹中创建完全自治的类。APP_CODE 文件夹是 ASP.NET 2.0 项目中的一个特殊文件夹,您的 Web 项目中的任何非页面或控件相关的源代码都必须进入该文件夹。ASP.NET 将 APP_CODE 的内容视为库项目,并将内容编译为单独的程序集。然后,ASP.NET 从使用 APP_CODE 中定义的任何类的 ASPX/ASCX 页面创建的所有页面或目录级程序集都会引用此程序集。

我的问题仍然存在 - 是否创建了第二个支持此库的 AppDomain,如果是,对性能的影响是否最小?