HttpRuntime在ASP.NET处理请求中负责的是创建HttpContext对象以及调用HttpApplicationFactory创建HttpApplication。
其定义如下:
public sealed class HttpRuntime { public HttpRuntime(); //获取 System.Web.HttpRuntime 所在的应用程序域的应用程序标识。 public static string AppDomainAppId { get; } //获取承载在当前应用程序域中的应用程序的应用程序目录的物理驱动器路径。 public static string AppDomainAppPath { get; } //获取包含承载在当前应用程序域中的应用程序的目录的虚拟路径。 public static string AppDomainAppVirtualPath { get; } //获取 System.Web.HttpRuntime 实例所在应用程序域的域标识。 public static string AppDomainId { get; } //获取 ASP.NET 客户端脚本文件的文件夹路径。 public static string AspClientScriptPhysicalPath { get; } //获取 ASP.NET 客户端脚本文件的虚拟路径。 public static string AspClientScriptVirtualPath { get; } //获取安装 ASP.NET 可执行文件的目录的物理路径。 public static string AspInstallDirectory { get; } //获取当前应用程序的 /bin 目录的物理路径。 public static string BinDirectory { get; } //获取当前应用程序的 System.Web.Caching.Cache。 public static Cache Cache { get; } //获取安装公共语言运行时可执行文件的目录的物理路径。 public static string ClrInstallDirectory { get; } //获取 ASP.NET 存储当前应用程序的临时文件(生成的源、编译了的程序集等)的目录的物理路径。 public static string CodegenDir { get; } //获取一个值,该值指示应用程序是否映射到通用命名约定 (UNC) 共享。如果应用程序映射到 UNC 共享,则为 true;否则,为 false。 public static bool IsOnUNCShare { get; } //获取当前应用程序的 Machine.config 文件所在目录的物理路径。 public static string MachineConfigurationDirectory { get; } //获取一个值,该值指示当前应用程序是否在 IIS 7.0 的集成管线模式下运行。如果应用程序在集成管线模式下运行,则为 true;否则为 false。 public static bool UsingIntegratedPipeline { get; } //从缓存中移除所有项。 public static void Close(); //返回与代码组关联的权限集。System.Security.NamedPermissionSet 对象,如果不存在任何权限,则为 null。 public static NamedPermissionSet GetNamedPermissionSet(); //驱动所有 ASP.NET Web 处理执行。参数: wr: 当前应用程序的 System.Web.HttpWorkerRequest。 public static void ProcessRequest(HttpWorkerRequest wr); //终止当前应用程序。应用程序在下次接收到请求时重新启动。 public static void UnloadAppDomain(); }
这里主要选择UnloadAppDomain()方法以及Cache来说。
1、HttpRuntime.Cache
- HttpRuntime.Cache 相当于就是一个缓存具体实现类,这个类虽然被放在了 System.Web 命名空间下了。但是非 Web 应用也是可以拿来用的。
- HttpContext.Cache 是对上述缓存类的封装,由于封装到了 HttpContext ,局限于只能在知道 HttpContext 下使用,即只能用于 Web 应用。
Page.Cache或HttpContext.Cache, 实际上都是HttpRuntime.Cache的快捷方式,Page.Cache访问了HttpContext.Cache,而HttpContext.Cache又直接访问HttpRuntime.Cache
2、HttpRuntime.UnloadAppDomain()
静态方法 UnloadAppDomain() 可以让我们用代码重新启动网站。 通常用于用户通过程序界面修改了一个比较重要的参数,这时需要重启程序了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现