如何强制将特定程序集加载到 MVC 2 应用程序的每个应用程序域中?

2024-03-18

我有一些松散耦合的代码,这些代码取决于加载到当前应用程序域中的特定程序集:

Assembly assembly = AppDomain.CurrentDomain.GetAssemblies().Where(
    candidateAssembly => candidateAssembly.FullName.StartsWith("Microsoft.WindowsAzure.ServiceRuntime")).SingleOrDefault();

该代码在 MVC 2 应用程序内执行并产生null引用,因为该程序集未加载到当前应用程序域中。我可以从该程序集中调用一些代码,但这会引入应用程序代码对该程序集的强烈依赖性,并且我不再具有松散耦合。

我需要在代码运行之前强制 IIS(或其他任何东西)将该程序集加载到应用程序域中。我尝试编写一个实现IHttpModule并将其列出在 web.config 中,但这没有帮助。

到目前为止,我尝试将程序集添加到<system.web><compilation><assemblies>看起来好像有效,但我不确定它是否可靠。

如何强制将该特定程序集加载到应用程序域中而不在代码中引入依赖项?


这是错误的方法,可能会导致严重的定时错误。

该设置会影响 ASP.NET 编译,因此仅在编译 ASP.NET 视图时强制加载程序集,并且最多编译一次 - 无论是在第一次请求视图时还是在就地预编译过程中(如果设置了后者) 。不管怎样,之后会有一段时间不需要编译 ASP.NET 视图。

现在,IIS 应用程序池每 29 小时自动回收一次。当池回收时,它会启动一个新的工作进程,并且该进程开始托管站点负载。重要的是 ASP.NET 视图在此过程中不会更改,因此不需要重新编译它们,因此不会调用编译过程,因此中列出的程序集<system.web><compilation><assemblies>不强制加载。

所以这个东西看起来可以工作,直到 29 小时过去,然后就崩溃了。

需要更好的解决方案。类似于设置中的东西<appSettings>说明 Azure 运行时是否应该可用。如果设置已设置,则代码可以首次调用 Azure 运行时程序集中的代码,这将使它们加载。如果未设置该设置,则不会尝试调用该代码。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何强制将特定程序集加载到 MVC 2 应用程序的每个应用程序域中? 的相关文章

  • Socket.*Async 方法是线程化的吗?

    我目前正在尝试找出最小化 TCP 主服务器中使用的线程数量的最佳方法 以便最大限度地提高性能 由于我最近阅读了大量 C 5 0 的新异步功能 异步并不一定意味着多线程 这可能意味着将有限状态对象分成较小的块 然后通过交替与其他操作一起进行处
  • 使用 ASP.NET 发送邮件

    我使用标准的 web config mailSettings 作为我的 ASP NET 电子邮件的骨干 然而 我发现它的能力越来越有限 例如 我想从许多不同的用户帐户 支持 销售 管理等 发送电子邮件 但 mailSettings 似乎不支
  • 随机无效视图状态错误

    我知道关于这个主题有很多问题 我已经阅读了所有这些问题 我正在使用 IIS8 Net 4 5 用户随机收到无效视图状态错误 我无法弄清楚 一旦发生这种情况 他们返回网站的唯一方法就是清除浏览器缓存 在我的 web config 中我有
  • 具有类类型的 Java 反射 getDeclaredMethod()

    我试图理解 Java 反射 但在使用非整数 setter 方法时遇到困难 例如 如何解析下面的 getDeclaredMethod 调用 import java lang reflect class Target String value
  • 新的 Windows 应用程序 - 什么语言?

    我们目前正处于开发 Windows 桌面应用程序的前期阶段 但当听到有关 Windows 8 Silverlight WPF Jupiter 的所有最新讨论时 我不知道该相信什么了 现在用WPF启动一个新项目是不是有问题 我应该切换到 Si
  • Ef 核心加载树列表

    根据我的模型 我想立即将数据提取为树列表 public class FolderInResearch EntityBase public FolderInResearch SubFolders new List
  • C#:asp.net 3.5:反序列化 JSON - 如何获取每个对象字符串?

    我知道还有其他地方给出了这个答案 但我想要实现的目标更复杂 这是我的反序列化代码 这是 json 数据 例如 data ShiftID 2 EmpName dsdsfs Dictionary
  • 使用 .NET 在 Windows 中创建弹出式“烤面包机”通知

    我正在使用 NET 并创建一个桌面应用程序 服务 当触发某些事件时 它将在桌面的一角显示通知 我不想使用常规的消息框 b c 那样会造成太大的干扰 我希望通知滑入视图 然后在几秒钟后淡出 我正在考虑一种类似于 Outlook 收到新邮件时发
  • 实体框架左外连接和分组抛出:ORA-00907:缺少右括号

    我在基于实体框架的数据访问中使用实体框架来定位多个数据库 我们是一个使用 Entity Framework 已有 2 年的团队 生成的代码与 sql server 2008 完美配合 现在 我们在将数据库迁移到 Oracle 11 Expr
  • Windows 服务器上的 .htaccess 文件

    我进行了研究 发现我的 htaccess 文件无法在我的新 Windows 服务器上运行 我发现我应该使用 web config 我尝试了一下 但没有任何效果 然后我发现我可以使用 htaccess 文件 但我必须将其命名为其他名称 例如
  • 在 Scala 中调用反射案例类构造函数

    我可以通过静态反射获取案例类的默认构造函数 val symbol currentMirror classSymbol myObj getClass typeSignature typeSymbol asClass val ctor symb
  • C# datagridview 列转入数组

    我正在用 C 构建一个程序 并在其中包含一个 datagridview 组件 datagridview 有固定数量的列 2 我想将其保存到两个单独的数组中 但行数确实发生了变化 我怎么能这样做呢 假设一个名为 dataGridView1 的
  • 操纵 setter 以避免 null

    通常我们有 public string code get set 如果最终有人将代码设置为 null 我需要避免空引用异常 我尝试这个想法 有什么帮助吗 public string code get set if code null cod
  • dropdownlist DataTextField 由属性组成?

    有没有一种方法可以通过 C 使 asp net 中的下拉列表的 datatextfield 属性由对象的多个属性组成 public class MyObject public int Id get set public string Nam
  • 我们可以使用 EWS 托管 API 连接到 Exchange 2016 吗?

    我使用的是 EWS 托管 API 2 2 它的枚举中没有显示 Exchange 版本 2016 我可以看到 Exchange 2013 之前的版本 那么如何连接到 Exchange Server 2016 该 API 是否尚未从 Micro
  • .NET JIT 编译的代码缓存在哪里?

    NET 程序首先被编译为 MSIL 代码 当它被执行时 JIT编译器会将其编译为本机机器代码 我想知道 这些JIT编译的机器代码存储在哪里 它只存储在进程的地址空间中吗 但由于程序的第二次启动比第一次快得多 我认为即使在执行完成后 该本机代
  • TPL 数据流块下游如何获取源生成的数据?

    我正在使用 TPL Dataflow 处理图像 我收到处理请求 从流中读取图像 应用多次转换 然后将生成的图像写入另一个流 Request gt Stream gt Image gt Image gt Stream 为此 我使用块 Buff
  • System.IO.Compression 和 ZipFile - 提取并覆盖

    我使用标准 VB NET 库来提取和压缩文件 它也可以工作 但是当我必须提取并且文件已经存在时 问题就出现了 我使用的代码 Imports Imports System IO Compression 崩溃时我调用的方法 ZipFile Ex
  • 使用 System.Security.Cryptography 将 Win32 Crypto API 调用转换为 C#

    我接到一项任务 要删除我们产品的一个 dll 并将其替换为纯 C 的 dll 旧的 DLL 是 NET 2 0 托管 C C CLI 它包装了对 Win32 本机加密 API 的调用 新的 DLL 应公开具有相同名称和方法的新对象 但应使用
  • 新的 .NET 6 控制台模板中的 C# 函数重载不起作用

    我在尝试重载该函数时遇到错误Print object in the 新的 NET 6 C 控制台应用程序模板 https learn microsoft com en us dotnet core tutorials top level t

随机推荐

  • 使用 __get() (魔术)来模拟只读属性和延迟加载

    我在用着 get http php net manual en language oop5 overloading php使我的一些属性 动态 仅在请求时初始化它们 这些 假 属性存储在私有数组属性中 我正在 get 中检查该属性 无论如何
  • 如何获取数据透视表每行的最大和最小列数?

    非常感谢 约翰卡佩莱蒂 https stackoverflow com users 1570000 john cappelletti他展示了如何旋转桌子 这是一个示例数据 DECLARE OperatorPrice TABLE ID int
  • vuejs2:我如何销毁观察者?

    我怎样才能摧毁这个观察者 当我的异步数据从父组件加载时 我的子组件中只需要一次 export default watch data function this sortBy 格雷戈尔 如果通过调用 vm watch 函数动态构造观察程序 它
  • JAVA:如何将私钥保存在具有密码保护的 pem 文件中

    我正在尝试将私钥保存在pem文件 受密码保护 问题是 pem文件已创建 我 甚至可以用 openssl 打开它 但是不需要密码 这是代码 KeyPairGenerator keygen KeyPairGenerator getInstanc
  • For Each 循环的逆序

    VB 最强大的功能之一是能够循环访问集合中的对象而不引用索引 for each loop 我发现它非常有用 只想从集合中删除对象 当从预定义对象 例如电子表格上的行 中删除对象时 如果我使用索引并从最大的对象开始并返回到第一个 则代码会更简
  • smartpackage 中的 Meteor 项目路径

    我正在寻找一种从智能包中查找流星项目路径的方法 例如 获取 meteor 文件夹所在目录的路径 我无法使用节点的 dirname 和 filename 来完成此操作 因为不知何故在流星中它们不可用 有小费吗 从 Meteor 0 6 0 开
  • 如何等待所有协程完成?

    我正在启动一个协程 我希望它在恢复执行主线程之前完成 我的代码简化如下 fun hello for i in 0 100 println hello fun main args Array
  • 多个环境中的 Azure 云服务项目配置(.csdef 和 .cscfg)

    目前我们有一个开发云服务 acme dev service 和一个生产云服务 acme prod service 我们解决方案中当前的设置有一个名为 acme application 的云服务项目 它使用 cscfg 和 csdef 文件的
  • Firebase 电话身份验证在发布时不起作用 (Android)

    当使用我的应用程序的调试版本时 电话身份验证有效 当我在手机上手动安装发布签名的 apk 时 电话身份验证也有效 但是当我将相同的工作 apk 发布到 Play 商店 Alpha 测试 时 我无法使其工作 经过一番挖掘后得到了这个 此应用无
  • Tidyr 与可选组分开

    我正在尝试使用extract来自 tidyr 包 将包含单个字符串的列拆分为 3 个单独的列 该问题的最小工作示例如下 A tibble 3 x 1 question codes
  • jquery ajax post成功返回数据

    我无法取回我的数据 这是我的代码 哪里有问题 谢谢 索引 php
  • 如何使用嵌套生成器编写 jqwik 生成器方法

    使用 jqwik net 尝试生成一个 Rule 类 其中包含一个嵌套的 RuleConfig 类 RuleConfig 类有一个嵌套的ruleProps 它是一个Map statusReturnedFromApplyingRule 方法始
  • 如何序列化包含指向原语的指针的类?

    我正在尝试使用 boost 的功能来序列化指向原语的指针 这样我就不必自己取消引用并进行深度存储 然而 当我尝试这样做时 我遇到了一堆错误 这是一个应该包含的类的简单示例save and load从文件中写入和读取类内容的方法 该程序无法编
  • 如何访问查询结果? [复制]

    这个问题在这里已经有答案了 我正在编写一个简单的测试来验证 id 列中不同值的数量与每个表的行数匹配 我期望能够访问对象的特定值 但是当我运行代码并尝试打印变量的值时 我可以看到我的对象是一个 sqlalchemy engine resul
  • jQuery 滚动对吗?

    我有以下代码 似乎可以在单击时将 div 一直滚动到左侧 我想知道是否 有一种方法可以让它一次只滚动 200px 我也可以让它向右滚动 试图查看 jQuery 文档 但找不到scrollToRight 函数 这是我的代码 leftArrow
  • 是否可以在 Firebase 上查询 !equalTo: null ?

    我使用此查询来验证我的 Firebase 上是否存在数据 使用 AngularFire2 let aux this afData list drivers query orderByChild accountHistory approved
  • Ruby on Rails“content_for:title”如何获得稍后分配的内容?

    简短的问题是 子页面如何 set the title主要布局 details 我们可以在应用程序布局中使用application html erb
  • 通过终端列出视频设备

    如何通过终端列出计算机的视频设备 有没有列出它们的命令 列出视频output设备 例如监视器 system profiler SPDisplaysDataType 这会产生如下所示的输出 Graphics Displays Intel HD
  • 动态加载 Jar 并实例化已加载类的对象

    我尝试将 jar 动态加载到我的 Java 项目中 这是类加载器的代码 public class ClassLoad public static void main String args String filePath new Strin
  • 如何强制将特定程序集加载到 MVC 2 应用程序的每个应用程序域中?

    我有一些松散耦合的代码 这些代码取决于加载到当前应用程序域中的特定程序集 Assembly assembly AppDomain CurrentDomain GetAssemblies Where candidateAssembly gt