• 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:WINDOWSassembly)是可以看到的。网上也有一些工具可以用;

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

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

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

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

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

  • 相关阅读:
    Unity 自定义日志保存
    一万字详解 Redis Cluster Gossip 协议
    第八届“图灵杯”NEUQ-ACM程序设计竞赛个人赛非官方题解
    数组小游戏---火把萤石
    11个编程接单的网站,你有技术就有收入,有收入就有女朋友《男盆友》
    逆向工程,调试Hello World !程序(更新中)
    魔改一波合成大西瓜!代码已开源~
    如何使用C++做个简单推箱子游戏
    第八届“图灵杯”NEUQ-ACM程序设计竞赛个人赛非官方题解
    zookeeper应用
  • 原文地址:https://www.cnblogs.com/hzz521/p/5257477.html
Copyright © 2020-2023  润新知