asp.net Web.config中assembly注册程序集的目的

asp.net的Web.config中用assembly注册程序集

asp.net的Web.config中用assembly注册程序集的目的是什么?

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

一个示例的代码  HTML code

<?xml version="1.0" encoding="utf-8"?>

<configuration>

  <configSections>

    <section name="magicAjax" type="MagicAjax.Configuration.MagicAjaxSectionHandler, MagicAjax"/>

  </configSections>

   <appSettings>

    <!--此处设置数据库连接字符串-->

    <add key="RootPath" value="http://localhost"/>

    <add key="shuiqing" value="server=localhost;database=shuiqing;User ID=sa;password=sa"/>

    <add key="admin" value="/wavenetcms/admin/login.asp"/>

  </appSettings>

   <system.web>

    <globalization requestEncoding="gb2312" responseEncoding="gb2312" culture="zh-CN" fileEncoding="gb2312"/>

    <!--设置 compilation debug="true" 将调试符号插入已编译的页面中。但由于这会影响性能,因此只在开发过程中将此值设置为 true。-->

     <httpHandlers>

      <remove verb="*" path="*.asmx"/>

      <add verb="*" path="*.asmx" validate="false" type="Microsoft.Web.Script.Services.ScriptHandlerFactory, Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>

      <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>

      <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>

    </httpHandlers>

     <compilation debug="false">

      <assemblies>

        <add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>

        <add assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>

        <add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>

        <add assembly="System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>

        <add assembly="System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>

        <add assembly="System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>

        <add assembly="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>

        <add assembly="System.Xml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>

        <add assembly="System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>

        <add assembly="System.Web.Services, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>

        <add assembly="System.DirectoryServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>

        <add assembly="System.DirectoryServices.Protocols, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>

        <add assembly="System.EnterpriseServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>

        <add assembly="System.ServiceProcess, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>

        <add assembly="System.Web.RegularExpressions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>

      </assemblies>

    </compilation>

     <!--通过 <authentication> 节可以配置 ASP.NET 使用的安全身份验证模式,以标识传入的用户。-->

     <authentication mode="Windows"/>

     <!--如果在执行请求的过程中出现未处理的错误,则通过 <customErrors> 节可以配置相应的处理步骤。

       具体说来,开发人员通过该节可以配置,要显示的html 错误页以代替错误堆栈跟踪。

      <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">

         <error statusCode="403" redirect="NoAccess.htm" />

         <error statusCode="404" redirect="FileNotFound.htm" />

      </customErrors>

   -->

   </system.web>

</configuration>

 其中:

<assemblies>

  <add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>

  <add assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>

  <add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>

  <add assembly="System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>

  <add assembly="System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>

  <add assembly="System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>

  <add assembly="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>

  <add assembly="System.Xml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>

  <add assembly="System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>

  <add assembly="System.Web.Services, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>

  <add assembly="System.DirectoryServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>

  <add assembly="System.DirectoryServices.Protocols, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>

  <add assembly="System.EnterpriseServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>

  <add assembly="System.ServiceProcess, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>

  <add assembly="System.Web.RegularExpressions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>

</assemblies>

这里注册了,是不是不用,再import System.***了呢?

还是说不用再在Bin目录上'右键'--"引用"--"***"了呢?

Imports System.xxxx是导入命名空间,是逻辑上的概念,引用是把别人的程序集拿到自己的程序中来,是物理上的概念,比命名空间更重要,如果不先引用别人的程序集,导入了别人的命名空间也没用;而引用了别人的程序集,即使不导入命名空间也没关系,只要你每个类都用全名访问(如System.Data.SqlClient.SqlConnection)

一般情况,ASP.NET应用程序已包含了对一部分全局程序集缓存中的程序集的引用。就好像1.x中新建一个站点项目,引用中会自动包含几个常用的程序集的引用(比如System.Web、System.Data)。现在,2.0,如果在我们的页面中需要对一些未被自动引用的程序集进行访问,不一定需要在创建的项目文件中添加引用,直接在web.config中定义对指定程序集的引用也可以达到希望的目的。web.config文件如下: 

<configuration> 

   <compilation> 

   <assemblies> 

   <add assembly="System.Data, Version=1.0.2411.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>

   </assemblies> 

</compilation> 

</configuration>

还有,我想问一下:

<add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> ……

请问这个红字的信息是从何而来呢? 强名称集,这些内容是在哪能看到? 如何查找?

这个到系统全局assambly目录下面(C:\WINDOWS\assembly)是可以看到的。网上也有一些工具可以用;

add assembly 是增加程序集的意思。

其要关注的有,程序集的名字(System.Data);版本号(1.0.2411.0),性质(neutral),公匙的标记(b77a5c561934e089)

其中,前面的你可以通过右键看DLL的属性来获得。公匙的标记,一般在我们的系统中可以查看到的。

我电脑的查看目录是C:\WINDOWS\assembly,从中查看PublicKeyToken。

 

 

原文地址:http://blog.sina.com.cn/s/blog_8abeac5b0100zp8n.html

转载于:https://www.cnblogs.com/hzz521/p/5257477.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值