web.config学习之assembly

本文详细介绍了.NET Framework 2.0 中的全局程序集缓存概念,如何自动提供给 Asp.net 应用程序,并通过在 Web.config 文件中注册自定义程序集的引用。包括了如何获取程序集的名称、版本号、性质和公匙标记等关键信息,以及如何利用 addassembly 方法在项目中注册并使用这些程序集。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

.net framewok2.0 提供了表示Framework的各个部件的大量程序集.这些程序集存储在全局程序集缓存中,该缓存是程序集的版本化存储库,可供计算机上的所有应用程序使用(而不像Bin和App_Code目录仅限于特定的应用程序).Framework中的多个程序集都可自动提供给Asp.net应用程序.通过在应用程序的Web.config文件中注册,可以注册更多的程序集.

一般情况,ASP.NET应用程序已包含了对一部分全局程序集缓存中的程序集的引用。就好像1.x中新建一个站点项目,引用中会自动包含几个常用的程序集的引用(比如System.Web、System.Data)。现在,2.0,如果在我们的页面中需要对一些未被自动引用的程序集进行访问不一定需要在创建的项目文件中“添加引用”操作(但是针对.net framework中的程序集的“添加引用”的操作一定会在web.config中添加<add assembly 的注册,供项目使用。)直接在web.config中定义对指定程序集的引用也可以达到希望的目的(原因见上面括号解释)  除此之外在项目中“添加引用”的COM选项卡、项目选项卡、以及浏览选择的文件都是不添加<add assembly标签,但选择他们都会在项目的Bin文件夹下出现该文件,而框架文件的添加并不出现在Bin文件夹下。

add assembly 是增加程序集的意思
其要关注的有,程序集的名字(System.Data);版本号(1.0.2411.0),性质(neutral),公匙的标记(b77a5c561934e089)
其中,前面的你可以通过右键看DLL的属性来获得。公匙的标记,一般在我们的系统中可以查看到的。
我电脑的查看目录是C:/WINDOWS/assembly,从中查看PublicKeyToken。

综上:add assembly 是在VS2.0新增加的方法,用于对Framework2.0中的已经存在的应用程序集注册,并在整个项目中使用,通过add assembly 是在物理上的引用及将framework中的中的程序集以用到项目中。也就是说如果要在项目某个类中应用某个命名空间,首先保证它在此项目中的应用程序集存在

 

### 关于 Visual Studio 2022 中 `web.config` 的配置和用法 在开发基于 ASP.NET 或其他 .NET Web 应用程序时,`web.config` 是一个非常重要的 XML 配置文件。它用于定义应用程序的行为、连接字符串以及各种模块设置等。对于 Visual Studio 2022 用户而言,了解如何正确配置和使用 `web.config` 至关重要。 #### 基本概念 `web.config` 文件通常位于项目的根目录下,其结构遵循特定的 XML Schema 定义。通过该文件可以实现多种功能,例如指定数据库连接字符串、启用或禁用身份验证模式、自定义错误页面等等[^1]。 以下是几个常见的配置示例: #### 数据库连接字符串配置 ```xml <configuration> <connectionStrings> <add name="DefaultConnection" connectionString="Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;" providerName="System.Data.SqlClient" /> </connectionStrings> </configuration> ``` 上述代码片段展示了如何向项目中添加名为 `DefaultConnection` 的 SQL Server 连接字符串。 #### 身份验证与授权 可以通过修改 `<system.web>` 下的相关节点来控制用户的访问权限: ```xml <configuration> <system.web> <authentication mode="Forms"> <forms loginUrl="~/Account/Login.aspx" timeout="30"/> </authentication> <authorization> <deny users="?"/> <!-- 拒绝匿名用户 --> </authorization> </system.web> </configuration> ``` 这里启用了表单认证并设置了登录超时时长为 30 分钟;同时拒绝未登录用户访问受保护资源。 #### 自动重启应用池条件管理 如果希望调整某些情况下触发 IIS 上的应用程序重新启动,则可利用如下参数进行定制化处理: ```xml <appSettings> <add key="AppRestartOnChanges" value="true"/> </appSettings> <!-- ... --> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="8.0.0.0"/> </dependentAssembly> </assemblyBinding> </runtime> ``` 需要注意的是,在实际部署过程中可能还需要考虑更多细节因素以确保生产环境中服务稳定性不受影响。 另外值得注意的一点是,虽然当前讨论主要围绕 VS2022 展开,但如果涉及更复杂场景比如跨平台支持或者全新标准采纳等问题时,则需额外关注目标框架版本兼容性状况——例如C++新特性引入情况就与此密切相关[^2]。 最后提醒开发者们注意构建流程中的变量设定准确性问题,像 `"use_openh264"`这样的编译选项可能会直接影响最终产物形态及其运行表现效果[^3]; 同样地,面对第三方依赖缺失引发错误提示 (如找不到包配置文件) ,则应按照指示补充相应路径信息至环境变量列表里去解决此类难题[^4].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值