惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

罗磊的独立博客
小众软件
小众软件
WordPress大学
WordPress大学
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
J
Java Code Geeks
T
Threat Research - Cisco Blogs
Cisco Talos Blog
Cisco Talos Blog
V
Visual Studio Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
P
Proofpoint News Feed
Hacker News: Ask HN
Hacker News: Ask HN
Application and Cybersecurity Blog
Application and Cybersecurity Blog
I
Intezer
Microsoft Azure Blog
Microsoft Azure Blog
有赞技术团队
有赞技术团队
Scott Helme
Scott Helme
MyScale Blog
MyScale Blog
B
Blog
The Last Watchdog
The Last Watchdog
The Cloudflare Blog
U
Unit 42
Last Week in AI
Last Week in AI
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
T
Tor Project blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
T
Tailwind CSS Blog
Project Zero
Project Zero
P
Palo Alto Networks Blog
V
Vulnerabilities – Threatpost
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园 - 【当耐特】
C
Cisco Blogs
G
Google Developers Blog
A
About on SuperTechFans
博客园 - Franky
博客园 - 聂微东
Help Net Security
Help Net Security
Apple Machine Learning Research
Apple Machine Learning Research
Recent Commits to openclaw:main
Recent Commits to openclaw:main
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
D
Docker
N
Netflix TechBlog - Medium
V2EX - 技术
V2EX - 技术
Cyberwarzone
Cyberwarzone
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
PCI Perspectives
PCI Perspectives
W
WeLiveSecurity
Engineering at Meta
Engineering at Meta
C
Check Point Blog
量子位

博客园 - Laeb

ASP.NET Web 页面语法概览 ASP.NET Web 页面中的新事物 渐增的许可 介绍 ASP.NET Web 页面 管理工具 ASP.NET Web 页面概览 检测何时需要更改安全策略 安全策略管理的概览 System.Net 类的最佳习惯 异常处理的最佳习惯 面向世界应用程序开发的最佳习惯 使用 ASP.NET 所创建的 XML Web 服务的设计指南 ASP.NET 控件与可访问 ASP.NET 中的可访问支持 实践:创建自定义 HTTP 模块 HTTP 模块介绍 实践:创建 HTTP 处理器工厂 实践:注册 HTTP 处理器 实践:创建同步 HTTP 处理器
为并发执行而创建应用程序与组件的指南
Laeb · 2007-03-24 · via 博客园 - Laeb

按照这些常规指南来创建为并发执行而被设计的被管理应用程序或者组件:

  • 把类型标识绑定到文件的特定版本。

    公共语言运行时通过使用强命名的汇编集把类型标识绑定到一个特定的文件版本。要为并发执行而创建一个应用程序或者组件,你就必须为所有的汇编集提供强名称。这会创建精确的类型标识并且确保任何类型协议都把注意力集中到正确的文件。一个强命名的汇编集包含了在运行时定位到正确文件来完成绑定请求的版本,文化和出版者信息。

  • 使用明确版本的存储。

    运行时使用全局汇编缓存来提供明确版本存储。全局汇编缓存是安装在每台使用 .NET Framework 的计算机中的一种明确版本的目录结构。当该汇编集的一个新版本被安装之后,被安装在全局汇编缓存中的汇编集并不会被覆盖。

  • 创建一个隔离运行的应用程序或者组件。

    隔离运行的应用程序或者组件必须管理资源来避免同时运行的应用程序或者组件的两个实例之间的冲突。该应用程序或者组件同样必须使用特定版本的文件结构。

应用程序与组件隔离

为并发执行而成功地设计应用程序或者组件的一个关键就是隔离。应用程序或者组件必须管理所有的资源,独特的文件 I/O,以一种被隔离的方式。遵循这些指南来确保你的应用程序或者组件的隔离运行:

  • 以一种特定版本方式来写入注册表。把值存储进表示版本的簇或者关键字中,并且不要跨越组件的版本来共享信息或者状态。这防止了两个应用程序或者组件同时从信息的覆盖中运行。
  • 产生特定版本的已命名内核对象,因此不会出现紊乱条件。例如,当彼此等待的相同应用程序的两个版本出现两个信号时所出现的紊乱条件。
  • 产生明确版本的文件与目录名称。这表示这些文件结构应该依赖于版本信息。
  • 以一种特定版本的方式来创建用户帐号和分组。通过应用程序而被创建的用户帐号和分组应该通过版本而被识别。不要在应用程序的版本之间共享用户帐号和分组。

安装与卸载版本

当为并发执行而设计应用程序的时候,遵循这些关于安装和卸载版本的指南:

  • 不要从可能被其他运行在不同版本 .NET Framework 下的应用程序所需要的注册表中删除信息。
  • 不要替换可能被其他运行在不同版本 .NET Framework 下的应用程序所需要的注册表信息。
  • 不要反注册运行在不同版本 .NET Framework 下的可能被其他应用程序所需要的 COM 组件。
  • 不要更改已经被注册的 COM 服务器的 InprocServer32 或者其他注册表入口。
  • 不要删除可能被运行在不同版本 .NET Framework 下的其他应用程序所需要的用户帐号或者分组。
  • 不要把任何事物添加到包含未被版本化的路径的注册表中。

文件版本号与汇编版本号

  • 文件版本就是一种不被运行时所使用的 Win32 版本资源。通常,你需要为 QFE 更新文件版本。两个同样的文件可以有不同的文件版本信息,并且两个不同的文件还可以拥有相同的文件版本信息。
  • 汇编集版本通过汇编集绑定的运行时而被使用。拥有不同版本号的两个同一汇编集会被运行时视为两种不同的汇编集。
  • 全局汇编集缓存工具(Gacutil.exe)只允许你在文件版本号是最新的时候替换汇编集。通常安装程序不会通过一个汇编集,除非该汇编集版本号是是最大的。