动易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等是具体数据文件,通过类序列化保存的,比方防刷新队列的长度就保存在这里文件里,你可以通过后台配置修改,也可以在这里直接修改.

posted @ 2009-05-24 16:41  XFeng信息科技工作室  阅读(728)  评论(0编辑  收藏  举报