• 动易SiteFactory配置文件(web.config)解读


    动易siteFactory配置文件比较繁杂,对很多不是做.net web编程用户来说凿实头痛,下面将网站web.config内容做一简单的解释,以及如何修改.

    配置声明节
      <configSections>
        <section name="enterpriseLibrary.ConfigurationSource" type="Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ConfigurationSourceSection, Microsoft.Practices.EnterpriseLibrary.Common, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
        <section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
        <section name="urlrewritingnet" requirePermission="false" type="UrlRewritingNet.Configuration.UrlRewriteSection, UrlRewritingNet.UrlRewriter" />
        <sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
          <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
            <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication" />
            <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
              <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="Everywhere" />
              <section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication" />
              <section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication" />
            </sectionGroup>
          </sectionGroup>
        </sectionGroup>
        <sectionGroup name="powereasy.web" type="PowerEasy.Web.Configuration.ComponentsSectionGroup, PowerEasy.Web">
          <section name="queryStrings" type="PowerEasy.Web.Configuration.QueryStringsSection, PowerEasy.Web" />
          <section name="security" type="PowerEasy.Web.Configuration.SecuritySection, PowerEasy.Web" />
        </sectionGroup>
      </configSections>
    这个节定义了,web.config文件中将要用到具体配置节点的名称,处理程序等.
    从这里可以看出,siteFactory里采用.net 企业应用程序块(enterpriseLibrary),里的数据访问块等.
    urlrewritingnet,是用来进行地址重写的,接着是asp.net ajax 配置节声明,最后有个sectionGroup声明,里面的配置节声明分别是,siteFactory页面访问控制(安全),页面访问参数等(.aspx?xxx  问号后面的xxx部分)

       声明节后就是具体的数据配置节点了
      <connectionStrings configSource="Config\ConnectionStrings.config" />
     这个就是数据库连接字符串的配置,具体的数据在config目录下的ConnectionStrings.config文件里,打开这个文件可以看到如下内容
    <!--指定数据库连接字符串(名称/值对的形式)的集合。-->
    <connectionStrings>
      <add name="Connection String" connectionString="server=.;database=SiteFactory;uid=PowerEasy;pwd=123456"
        providerName="System.Data.SqlClient" />
    </connectionStrings>
    这里就是大家熟悉的数据库连接字符串内容了,根据需要你可以将connectionString="xxx"里面的xxx内容改成你当前数据库连接配置.
        <httpHandlers>
          <remove verb="*" path="*.asmx" />
          <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.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" />
          <add verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
          <add verb="*" path="*.jpg" type="PowerEasy.Web.NoLeechImageHandler, PowerEasy.Web" />
          <add verb="*" path="*.gif" type="PowerEasy.Web.NoLeechImageHandler, PowerEasy.Web" />
          <add verb="*" path="*.png" type="PowerEasy.Web.NoLeechImageHandler, PowerEasy.Web" />
        </httpHandlers>

    这里是处理程序配置,前面几个是asp.net ajax的,后面3个是siteFactory用来防止图片盗连用的,具体的实现思路是,判断图片文件请求的标头中的Referrer是否是本网站的地址,如果你的网站不存在防盗连需求(向来多是你盗用别人的"_-!)你可以用
    <!-- 
        <add verb="*" path="*.jpg" type="PowerEasy.Web.NoLeechImageHandler, PowerEasy.Web" />
          <add verb="*" path="*.gif" type="PowerEasy.Web.NoLeechImageHandler, PowerEasy.Web" />
          <add verb="*" path="*.png" type="PowerEasy.Web.NoLeechImageHandler, PowerEasy.Web" />
      -->标价将3个注释掉 

        <httpModules>
          <add name="RefreshModule" type="PowerEasy.Web.HttpModule.RefreshModule, PowerEasy.Web" />
          <add name="CommonModule" type="PowerEasy.Web.HttpModule.CommonModule, PowerEasy.Web" />
          <add name="IPLockModule" type="PowerEasy.Web.HttpModule.IPLockModule, PowerEasy.Web" />
          <add name="ExceptionModule" type="PowerEasy.Web.HttpModule.ExceptionModule, PowerEasy.Web" />
          <add name="SecurityModule" type="PowerEasy.Web.HttpModule.SecurityModule, PowerEasy.Web" />
          <add name="QueryStringModule" type="PowerEasy.Web.HttpModule.QueryStringModule, PowerEasy.Web" />
          <add name="HttpUploadModule" type="PowerEasy.Controls.ExtendedUploadFile.HttpUploadModule, PowerEasy.Controls" />
          <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
          <add name="UrlRewriteModule" type="UrlRewritingNet.Web.UrlRewriteModule, UrlRewritingNet.UrlRewriter" />
        </httpModules>
     是处理模块,除了ScriptModule是asp.net ajax指定的处理模块外,其他的多是siteFactory的,你可以根据情况屏蔽掉一些
    比方RefresModule是防刷新用的,IPLokeModule是用来屏蔽IP的....

    另外注意在web.config后面有个<system.webServer>...</system.webServer> 节,这个是IIS7.0中新增加的,性质跟上面的<httpHandlers><httpModules>一样的.

        <!--为当前应用程序配置会话状态设置。-->
        <sessionState mode="InProc" timeout="20">

    表示用户会话保存在进程内20表示是失效时间,不过sessionState实际的失效时间取决于服务器的负担.
        <urlMappings enabled="true">
          <clear />
          <add url="~/Index.aspx" mappedUrl="~/Default.aspx" />
          <add url="~/User/Index.aspx" mappedUrl="~/User/Default.aspx" />
        </urlMappings>


    urlMappings 是.net2.0自带的地址重写机智,不支持正则表达式,但是一般的应用多可以满足,并且很方便

        <webParts>
          <personalization defaultProvider="WebPartPersonalizationProvider">
            <providers>
              <add name="WebPartPersonalizationProvider" type="PowerEasy.UserManage.WebPartProvider, PowerEasy.UserManage" />
            </providers>
          </personalization>
        </webParts>

    这一段是SiteFactory提供的WebParts个性数据保存的配置,另外asp.net2.0也提供sql实现的一个提供程序,你可以使用aspnet_regsql来实现.

      <urlrewritingnet configSource="Config\UrlRewriteSettings.config" />
      <powereasy.web>
        <security configSource="Config\Security.config" />
        <!--指定页面传递参数的集合。-->
        <queryStrings configSource="Config\QueryStrings.config" />
      </powereasy.web>

    这几对的数据多是在其指顶的文件里,你可以去config目录下查看,

    例外config目录下有CreateCollectionWork.config,CreateHtmlWork.config是数据采集,与将静态页生成用的,目的是用来在进程间交换信息的.Site.config等是具体数据文件,通过类序列化保存的,比方防刷新队列的长度就保存在这里文件里,你可以通过后台配置修改,也可以在这里直接修改.

  • 相关阅读:
    Spring AOP 代理创建方式
    VS全局搜索
    uni-app中添加AES加密
    中国菜刀"连接被重置"问题解决
    Windows go get下载包失败问题解决
    搭建vulhub 漏洞环境及安装Docker和docker-compose
    DedeCMS 5.7通用重装漏洞分析
    各就各位,预备,GO!
    ARL资产灯塔系统分组资产导出脚本
    玩《巫师3》需要了解的背景知识
  • 原文地址:https://www.cnblogs.com/wxf82610/p/1488306.html
Copyright © 2020-2023  润新知