??xml version="1.0" encoding="utf-8" standalone="yes"?>嫩呦国产一区二区三区av,在线精品亚洲,一区二区三区四区欧美日韩http://www.aygfsteel.com/yeiwei/category/15474.html <span class="style14"><br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;----气度影响格局-性格军_命运<br> <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;----智力比知识重要,素质比智力重要,觉?zhn)比素质更重?</span>zh-cnWed, 28 Feb 2007 08:10:33 GMTWed, 28 Feb 2007 08:10:33 GMT60c#.net常用的小函数参?/title><link>http://www.aygfsteel.com/yeiwei/articles/72573.html</link><dc:creator>圣域飞侠</dc:creator><author>圣域飞侠</author><pubDate>Thu, 28 Sep 2006 06:21:00 GMT</pubDate><guid>http://www.aygfsteel.com/yeiwei/articles/72573.html</guid><wfw:comment>http://www.aygfsteel.com/yeiwei/comments/72573.html</wfw:comment><comments>http://www.aygfsteel.com/yeiwei/articles/72573.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/yeiwei/comments/commentRss/72573.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/yeiwei/services/trackbacks/72573.html</trackback:ping><description><![CDATA[<p> <font size="1">c#.net常用的小函数和方法集 </font> </p> <p> <br /> <font size="1">1、DateTime   数字型?<br />       System.DateTime currentTime=new System.DateTime();  <br />  1.1 取当前年月日时分U?<br />       currentTime=System.DateTime.Now;  <br />  1.2 取当前年  <br />       int q?currentTime.Year;  <br />  1.3 取当前月  <br />       int ?currentTime.Month;  <br />  1.4 取当前日  <br />       int ?currentTime.Day;  <br />  1.5 取当前时  <br />       int ?currentTime.Hour;  <br />  1.6 取当前分  <br />       int ?currentTime.Minute;  <br />  1.7 取当前秒  <br />       int U?currentTime.Second;  <br />  1.8 取当前毫U?<br />    int 毫秒=currentTime.Millisecond;  <br />    Q变量可用中文)  </font> </p> <p> <font size="1">2、Int32.Parse(变量)            Int32.Parse("帔R")  <br />   字符型{?转ؓ32位数字型  </font> </p> <p> <font size="1">3、?变量.ToString()       <br />   字符型{?转ؓ字符串?<br />   12345.ToString("n");        //生成   12,345.00  <br />   12345.ToString("C");        //生成 K?2,345.00  <br />   12345.ToString("e");        //生成 1.234500e+004  <br />   12345.ToString("f4");        //生成 12345.0000  <br />   12345.ToString("x");         //生成 3039  (16q制)  <br />   12345.ToString("p");         //生成 1,234,500.00%  </font> </p> <p> <br /> <font size="1">4、变?Length  数字型?<br />   取字串长度:  <br />      如: string str="中国";  <br />           int Len = str.Length ;    //Len是自定义变量Q?str是求的字串的变量名  </font> </p> <p> <font size="1">5、System.Text.Encoding.Default.GetBytes(变量)  <br />   字码转换 转ؓ比特码?<br />      如:byte[] bytStr = System.Text.Encoding.Default.GetBytes(str);  <br />   然后可得到比牚w度:  <br />      len = bytStr.Length;  </font> </p> <p> <font size="1">6、System.Text.StringBuilder("")  <br />    字符串相加,Q?h不是也一PQ?<br />    如:System.Text.StringBuilder sb = new System.Text.StringBuilder("");  <br />       sb.Append("中华");  <br />       sb.Append("人民");  <br />       sb.Append("共和?);  </font> </p> <p> <font size="1">7、变?Substring(参数1,参数2);  <br />    截取字串的一部分Q参?为左起始位数Q参?为截取几位。?<br />    如:string s1 = str.Substring(0,2);  </font> </p> <p> <font size="1">8、String user_IP=Request.ServerVariables["REMOTE_ADDR"].ToString();  <br />    取远E用户IP地址  </font> </p> <p> <font size="1">9、穿q代理服务器取远E用L实IP地址Q?<br />   if(Request.ServerVariables["HTTP_VIA"]!=null){  <br />      string  user_IP=Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();  <br />     }else{  <br />      string  user_IP=Request.ServerVariables["REMOTE_ADDR"].ToString();  <br />    }  <br />      <br />10、?Session["变量"];    <br />      存取Session|  <br />      如,赋|  Session["username"]="布什";  </font> </p> <p> <font size="1">          取|  Object objName=Session["username"];  <br />                  String strName=objName.ToString();  <br />          清空Q?Session.RemoveAll();  </font> </p> <p> <font size="1">11、String str=Request.QueryString["变量"];  <br />      用超链接传送变量。?<br />       如在M中链接:<a href=Edit.aspx?fbid=23>点击</a>  <br />       在Edit.aspx中取|String str=Request.QueryString["fdid"];  </font> </p> <p> <font size="1">12、DOC对象.CreateElement("新徏节点?);  <br />      创徏XML文档新节点?</font> </p> <p> <font size="1">13、父节点.AppendChild(子节?Q?<br />      新建的子节点加到XML文档父节点下  </font> </p> <p> <font size="1">14?父节?RemoveChild(节点);  <br />       删除节点  </font> </p> <p> <font size="1">15、Response  <br />    Response.Write("字串")Q?<br />    Response.Write(变量)Q?<br />       向页面输出。?</font> </p> <p> <font size="1">    Response.Redirect("URL地址"Q;  <br />       跌{到URL指定的页面?</font> </p> <p> <font size="1">16、char.IsWhiteSpce(字串变量Q位?——逻辑型?<br />    查指定位|是否空字符Q?<br />    如:  <br />    string str="中国  人民";  <br />    Response.Write(char.IsWhiteSpace(str,2)); //l果为:True, W一个字W是0位,2是第三个字符。?</font> </p> <p> <font size="1">17、char.IsPunctuation('字符')  --逻辑型?<br />    查字W是否是标点W号  <br />   如:Response.Write(char.IsPunctuation('A'));   //q回QFalse  </font> </p> <p> <font size="1">18?int)'字符'  <br />    把字W{为数字,查代码点Q注意是单引受?<br />    如:  <br />    Response.Write((int)'?);   //l果Z字的代码Q?0013  </font> </p> <p> <font size="1">19?char)代码  <br />    把数字{为字W,查代码代表的字符。?<br />   如:  <br />   Response.Write((char)22269);   //q回“国”字。?<br />     <br />20?Trim()  <br />     清除字串前后I格  </font> </p> <p> <font size="1">21 、字串变?Replace("子字?,"替换?)  <br />     字串替换  <br />     如:  <br />     string str="中国";  <br />     str=str.Replace("?,"?);  //国字换为央字?<br />     Response.Write(str);     //输出l果为“中央”?</font> </p> <p> <font size="1">     再如Q(q个非常实用Q?</font> </p> <p> <font size="1">       string str="q是<script>脚本";  <br />       str=str.Replace("<","<font><</font>");  //左括h换ؓ<font> ?< ?</font> Q或换ؓ&ltQ但估计lXML存诸后,再提Z会还原)  <br />       Response.Write(str); //昄为:“这?lt;script>脚本”?</font> </p> <p> <font size="1">      如果不替换,<script>不昄Q如果是一D脚本,运行;而替换后Q脚本将不运行。?<br />      q段代码的h(hun)值在于:你可以让一个文本中的所有HTML标签失效Q全部显C出来,保护你的h交互性的站点。?<br />     具体实现Q将你的表单提交按钮脚本加上下面代码Q?<br />     string strSubmit=label1.Text;   //label1是你让用h交数据的控gID。?<br />     strSubmit=strSubmit.Replace("<","<font><</font>");   <br />     然后保存或输出strSubmit。?<br />     用此Ҏ(gu)q可以简单实现UBB代码。?</font> </p> <p> <font size="1">22、Math.Max(i,j)  <br />    取i与j中的最大值?<br />    ?int x=Math.Max(5,10);  // x取?10   </font> </p><img src ="http://www.aygfsteel.com/yeiwei/aggbug/72573.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/yeiwei/" target="_blank">圣域飞侠</a> 2006-09-28 14:21 <a href="http://www.aygfsteel.com/yeiwei/articles/72573.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ASP.NET配置文gWeb.config http://www.aygfsteel.com/yeiwei/articles/70796.html圣域飞侠圣域飞侠Wed, 20 Sep 2006 06:35:00 GMThttp://www.aygfsteel.com/yeiwei/articles/70796.htmlhttp://www.aygfsteel.com/yeiwei/comments/70796.htmlhttp://www.aygfsteel.com/yeiwei/articles/70796.html#Feedback0http://www.aygfsteel.com/yeiwei/comments/commentRss/70796.htmlhttp://www.aygfsteel.com/yeiwei/services/trackbacks/70796.html 一、认识Web.config文g

  Web.config文g是一个XML文本文gQ它用来储存 ASP.NET Web 应用E序的配|信息(如最常用的设|ASP.NET Web 应用E序的n份验证方式)Q它可以出现在应用程序的每一个目录中。当你通过VB.NET新徏一个Web应用E序后,默认情况下会在根目录自动创徏一个默认的
Web.config文gQ包括默认的配置讄Q所有的子目录都l承它的配置讄。如果你想修改子目录的配|设|,你可以在该子目录下新Z个Web.config文g。它可以提供除从父目录承的配置信息以外的配|信息,也可以重写或修改父目录中定义的设|?br />
  在运行时对Web.config文g的修改不需要重启服务就可以生效Q注Q<processModelQ?节例外)。当然Web.config文g是可以扩展的。你可以自定义新配置参数q编写配|节处理E序以对它们q行处理?

  二、web.config配置文gQ默认的配置讄Q以下所有的代码都应该位?br />
QconfigurationQ?br />Qsystem.webQ?/font>

  ?br />
Q?system.webQ?br />Q?configurationQ?/font>

  之间Q出于学习的目的下面的示例都省略了这DXML标记

  1、<authenticationQ??br />
  作用Q配|?ASP.NET w䆾验证支持QؓWindows、Forms、PassPort、None四种Q。该元素只能在计机、站Ҏ(gu)应用E序U别声明。<authenticationQ?元素必需与<authorizationQ?节配合用?br />
  CZQ?br />
  以下CZ为基于窗体(FormsQ的w䆾验证配置站点Q当没有登陆的用戯问需要n份验证的|页Q网自动蟩转到登陆|页?br />
Qauthentication mode="Forms" Q?
Qforms loginUrl="logon.aspx" name=".FormsAuthCookie"/Q?br />
Q?authenticationQ?/font>

  其中元素loginUrl表示登陆|页的名Uͼname表示Cookie名称

  2、<authorizationQ??br />
  作用Q控制对 URL 资源的客L讉KQ如允许匿名用户讉KQ。此元素可以在Q何别(计算机、站炏V应用程序、子目录或页Q上声明。必需与<authenticationQ?节配合用?br />
  CZQ以下示例禁止匿名用L讉K

QauthorizationQ?br /> Qdeny users="?"/Q?br />Q?authorizationQ?/font>

  注:你可以用user.identity.name来获取已l过验证的当前的用户名;可以使用
web.Security.FormsAuthentication.RedirectFromLoginPageҎ(gu)已验证的用户重定向到用户刚才请求的面.具体的实例请参?

  Forms验证
http://www.fanvb.net/websample/dataauth.aspx

  3、<compilationQ节

  作用Q配|?ASP.NET 使用的所有编译设|。默认的debug属性ؓ“True?在程序编译完成交付用之后应其设ؓTrueQWeb.config文g中有详细说明Q此处省略示例)

  4、<customErrorsQ?

  作用Qؓ ASP.NET 应用E序提供有关自定义错误信息的信息。它不适用?XML Web services 中发生的错误?br />
  CZQ当发生错误Ӟ网蟩转到自定义的错误面?br />
QcustomErrors defaultRedirect="ErrorPage.aspx" mode="RemoteOnly"Q?br />Q?customErrorsQ?/font>

  其中元素defaultRedirect表示自定义的错误|页的名U。mode元素表示Q对不在本地 Web 服务器上q行的用hC定义(友好?信息?br />
  5、<httpRuntimeQ节

  作用Q配|?ASP.NET HTTP q行库设|。该节可以在计算机、站炏V应用程序和子目录别声明?br />
  CZQ控制用户上传文件最大ؓ4MQ最长时间ؓ60U,最多请求数?00

QhttpRuntime maxRequestLength="4096" executionTimeout="60" appRequestQueueLimit="100"/Q?/font>

  6?QpagesQ?br />
  作用Q标识特定于늚配置讄Q如是否启用会话状态、视囄态,是否用L输入{)。<pagesQ可以在计算机、站炏V应用程序和子目录别声明?br />
  CZQ不用户在览器输入的内容中是否存在潜在的危险数据Q注Q该w认是,如果你用了不检,一要对用户的输入进行编码或验证)Q在从客L回发|检查加密的视图状态,以验证视囄态是否已在客L被篡攏V?注:该项默认是不验证Q?br />
Qpages buffer="true" enableViewStateMac="true" validateRequest="false"/Q?/font>

  7、<sessionStateQ?br />
  作用Qؓ当前应用E序配置会话状态设|(如设|是否启用会话状态,会话状态保存位|)?br />
  CZQ?br />
QsessionState mode="InProc" cookieless="true" timeout="20"/Q?br />Q?sessionStateQ?/font>

  注:

  mode="InProc"表示Q在本地储存会话状态(你也可以选择储存在远E服务器或SAL服务器中或不启用会话状态)

  cookieless="true"表示Q如果用h览器不支持Cookie时启用会话状?默认为FalseQ?br />
  timeout="20"表示Q会话可以处于空闲状态的分钟?br />
  8、<traceQ?br />
  作用Q配|?ASP.NET 跟踪服务Q主要用来程序测试判断哪里出错?br />
  CZQ以下ؓWeb.config中的默认配置Q?br />
Qtrace enabled="false" requestLimit="10" pageOutput="false" traceMode="SortByTime" localOnly="true" /Q?/font>

  注:

  enabled="false"表示不启用跟t;requestLimit="10"表示指定在服务器上存储的跟踪h的数?

  pageOutput="false"表示只能通过跟踪实用工具讉K跟踪输出Q?br />
  traceMode="SortByTime"表示以处理跟t的序来显Ct信?br />
  localOnly="true" 表示跟踪查看?(trace.axd) 只用于宿?Web 服务?br />
  三、自定义Web.config文g配置?br />
  自定义Web.config文g配置节过E分Z步?br />
  一是在在配|文仉?QconfigSectionsQ??Q?configSectionsQ标C间声明配|节的名U和处理该节中配|数据的 .NET Framework cȝ名称?br />
  二是?QconfigSectionsQ?区域之后为声明的节做实际的配|设|?br />
  CZQ创Z个节存储数据库连接字W串

QconfigurationQ?br /> QconfigSectionsQ?br /> Qsection name="appSettings" type="System.Configuration.NameValueFileSectionHandler, System, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/Q?br />Q?configSectionsQ?br />
 QappSettingsQ?br />  Qadd key="scon" value="server=a;database=northwind;uid=sa;pwd=123"/Q?br /> Q?appSettingsQ?br />
 Qsystem.webQ?br />  ......
 Q?system.webQ?br />Q?configurationQ?

  四、访问Web.config文g

  你可以通过使用ConfigurationSettings.AppSettings 静态字W串集合来访?Web.config 文gCZQ获取上面例子中建立的连接字W串?br />
Dim sconstr As String = ConfigurationSettings.AppSettings("SconStr")
Dim scon = New SqlConnection(sconstr)


圣域飞侠 2006-09-20 14:35 发表评论
]]>
ASP.NET 2.0, 惌׃不容易—在ASP.NET 2.0中开发通配W映应用程序的一些问?http://www.aygfsteel.com/yeiwei/articles/70773.html圣域飞侠圣域飞侠Wed, 20 Sep 2006 05:36:00 GMThttp://www.aygfsteel.com/yeiwei/articles/70773.htmlhttp://www.aygfsteel.com/yeiwei/comments/70773.htmlhttp://www.aygfsteel.com/yeiwei/articles/70773.html#Feedback0http://www.aygfsteel.com/yeiwei/comments/commentRss/70773.htmlhttp://www.aygfsteel.com/yeiwei/services/trackbacks/70773.html 文章的题目想了好几个Q比如:“在ASP.NET 2.0中开发通配W映应用程序的一些问题”,后来考虑Cؓ了吸引眼?)QƈZ好记Q选了q个有点俗的题目?
     本文主要通过分析在ASP.NET 2.0中开发ASP.NET通配W映应用程序遇到的一些问题,来说明ASP.NET 2.0中页面编译模型的不之处。文章中如果有不妥之处,Ƣ迎(zhn)指出?
     q里所说的ASP.NET通配W映应用程序是指在IIS中将所有请求{发至ASP.NET 2.0q行时处?对于IIS 5.0Q就是徏?*到aspnet_isapi.dll的映?Q在E序中通过实现System.Web.IhttpHandlerFactory接口来处理所有请求,实现System.Web.IhttpHandlerFactory的类q当于一个前端控制器。典型应用就?Text及基?Text开发的博客园Blog软g?
     在ASP.NET 1.1中,实现通配W映应用程序大家可能比较清楚,主要是两点:
     1、 实现System.Web.IhttpHandlerFactory接口Q在GetHandler(HttpContext context, string requestType, string url, string path)中根据请求的urlQ基于一些规则,扑ֈ实际讉K的页面文Ӟ然后调用PageParser.GetCompiledPageInstance寚w面进行编译ƈ生成相应的实例处理请求。这样做的好处是Q你可以使用L的url地址Q不必关心是否存在对应的面文gQ而且可以方便地控制对Web服务器上资源的访问?
     2、 在web.config中加?
< httpHandlers >
    
< add  path ="*"  verb ="*"  type ="Dottext.Common.UrlManager.UrlReWriteHandlerFactory,Dottext.Common"  validate ="false"   />

</ httpHandlers >

     ASP.NET 2.0中新的页面编译模型给实现通配W映应用程序带来意想不到的问题Q下面我以博客园Blog软gZ与大家一些探讨这些问题?
     在博客园Blog软g中,实现IhttpHandlerFactory接口的是Dottext.Common.UrlManager. UrlReWriteHandlerFactoryQ不改变在ASP.NET 1.1中实现的UrlReWriteHandlerFactory代码Q直接在ASP.NET 2.0中编译ƈq行Q当E序q行在IIS根目录下Q就会在执行PageParser.GetCompiledPageInstance时出现“Object reference not set to an instance of an object”异?q行在虚拟目录中不会出现q个问题)。这个问题是ASP.NET 2.0中的一个小BugQ之前我写的
PageParser.GetCompiledPageInstance中的一个Bug及解x?/font> 对这个问题进行了一些分析,q个问题可以通过在PageParser.GetCompiledPageInstance之前调用context.RewritePathQ?~/default.aspx")解决?
      接着q行讉K个hBlog主页的测试,比如Q?/font> http://www.cnblogs.com/dudu Q访问时出现错误Q?

“There is no build provider registered for the extension ''. You can register one in the  < compilation >< buildProviders >  section in machine.config or web.config. Make sure is has a BuildProviderAppliesToAttribute attribute which includes the value 'Web' or 'All'.?/span>

     在ASP.NET 2.0中,当我们第一ơ访问一个页面时Q必不少的两个过E是Q?、页面编?2、创建编译后的页面代码的实例。页面编译是Ҏ(gu)所讉K的url地址中的扩展名找到匹配的Build Provider寚w面进行编译。这里出现的问题是由于ASP.NET 2.0q行时没扑ֈ相应的Build ProviderQ对 http://www.cnblogs.com/dudu q样地址Q由于用了通配W映,在ASP.NET 2.0q行时处理时Q得到的扩展名是I?如果没有使用通配W映,IIS会自动将地址改ؓQ?/font> http://www.cnblogs.com/dudu/default.aspx )。ASP.NET 2.0在这里的设计不之处是没有考虑q种情况Q无法通过在web.config中进行相应的配置来解册个问题。如果能提供下面的配|,q个问题可以轻松解冻I

< buildProviders  >
        
< add   extension =".*"  type ="System.Web.Compilation.PageBuildProvider" />

</ buildProviders >

     对于q个问题Q我的解x法是在PageParser.GetCompiledPageInstance之前对urlq行处理Q在url中加上缺省文Ӟ比如Qdefault.aspx。如果你想用其他的扩展名,比如Q?htmlQ需要在web.config中加?

< buildProviders  >
        
< add   extension =".html"  type ="System.Web.Compilation.PageBuildProvider" />

</ buildProviders > ?/span>

     q里q有一个小bugQ在上面的错误信息“Make sure is has a BuildProvider AppliesToAttribute attribute which includes the value 'Web' or 'All'.”提C需要设|AppliesToAttribute属性,实际上web.config中ƈ不支持这L属性,可能是正式版之前的ASP.NET 2.0支持q这个属性,后来L后,错误提示信息q没有修攏V?
     解决了上面的两个问题Q原以ؓ通配W映应用程序可以在ASP.NET 2.0中正常运行了Q我在本Z试博客园的E序Q页面能正常讉K。可是今天凌晨在服务器进上将|站升到ASP.NET 2.0之后Q发现ASP.NETq行时在频繁地编译页面,CPU占用一?00%Q编译了一个多时q在~译Q而且~译g与访问量有关Q访问少的站炚w面还能打开Q博客园ȝ׃讉K量大Q几乎无法访问。问题出在哪Q于是我从PageParser.GetCompiledPageInstance的源代码LU烦Q在BuildManager.GetCacheKeyFromVirtualPath中发现可疑之处,BuildManager是根据所h的虚拟\径创建缓存键Q然后根据这个键查找或创建页面编译后的缓存对象。当对一个页面发求时QBuildManager会检查缓存,先从内存中检查,如果内存中没有就从缓存文件夹(Temporary ASP.NET Files)中查找,如果扑ֈQ就直接创徏该类型的实例Q不q行动态编译。如果没扑ֈQ就q行面~译工作Q而且查找的依据就是根据虚拟\径创建的~存键。对于通常的页面访问方式,q样处理不会引v问题。但对于通配W映的情况Q就会带来问题。因为通配W映时Q常见情冉|不同的url地址讉K的却是同一个页面文件。比如博客园中每文章地址不同Q但讉K的却是同L面代码Q如果按照目前ASP.NET 2.0中的面~译模型Q每文章第一ơ访问都要进行编译,如果博客园中的几十万文章被讉KQ就要进行几十万~译Q难怪今天博客园|站升至ASP.NET 2.0之后Q服务器一直忙于编译?
l过试情况果然q样Q当然访问地址Q?/font> http://www.cnblogs.com/dudu/archive/2006/03/07/345107.html 时会在Temporary ASP.NET Files中文件夹~译生成cASP.dudu_archive_2006_03_07_345107_htmlQ而访问其他文章地Ӟ也根据文章地址生成另外一个类(2006q??2日修改:对于q个问题Q通过传给PageParser.GetCompiledPageInstance一个真实的虚拟地址p解决问题Q比如在博客园程序中Q对于上面的地址Q改L代码p了:GetCompiledPageInstance(app+"~/default.aspx", pagepath, context))?/font> q样~译效率实在太低?Z么要Ҏ(gu)虚拟路径创徏~键Q设计者设计时Ҏ(gu)没考虑到通配W映的问题Q真是糟p的设计Q如果按照ASP.NET 1.1那样Ҏ(gu)实际讉K的页面文件名创徏~存键,可以轻村֜避免q个问题。ASP.NET 2.0新的面~译模型在这里似乎是一个|W。更p糕的是q让开发h员I补这个Bug的机会都没有QSystem.Web.Compilation.BuildManager中没有提供一个让开发h员自p|缓存键的方法或属性?注:创徏~存键的Ҏ(gu)是BuildManager. GetCacheKeyFromVirtualPath(VirtualPath virtualPath, out bool keyFromVPP))。更p糕的是QSystem.Web.Compilation中的很多c都是internalQ很多类的方法是灰色QReflector用灰色显Cinternal static或privateQ颜色用的不错,让h看了q心)Q想自己调用相应Ҏ(gu)q行面~译几乎是不可能(用反的Ҏ(gu)不知能否调用Q还没试q,即能调用,也要考虑性能上的损失)。难道要自己写System.Web.Compilation中那些类d理页面编译?我宁愉K择ASP.NET 1.1Q然后等ASP.NET 2.0 SP1QSP1解决不了Q等SP2......希望不要{到ASP.NET 3.0?
      也许你想C在GetHandler(HttpContext context, string requestType, string url, string path)中调用System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath来编译ƈ创徏面的实例。这个方法我也尝试过Q答案是不行Q还不如PageParser.GetCompiledPageInstanceQ至后者能让程序运行v来。用BuildManager.CreateInstanceFromVirtualPathӞ当访问的地址中不带扩展名时就会出现“The resource cannot be found”错误,原因是在GetVPathBuildResultInternal(VirtualPath virtualPath, bool noBuild, bool allowCrossApp, bool allowBuildInPrecompile)中调用了Util.CheckVirtualFileExists(virtualPath)对虚拟\径进行检查,查时虚拟\径{换ؓ物理路径Q检查当前请求的面文g是否存在Q对于通配W映应用程序,很多地址是实际上不存在的Q所以就出现“The resource cannot be found”错误。而PageParser.GetCompiledPageInstance中通过调用HostingEnvironment.AddVirtualPathToFileMapping避免了这个问题。而这个方法被
Internal保护Q在代码中也无法调用?
      我觉得问题的核心是ASP.NET 2.0设计者在设计时没有考虑通配W映这L情况。是忽略q是另有考虑Q就不得而知了。但ASP.NET 1.1能正处理这个问题,而ASP.NET 2.0却处理不了,q里很不应该的。用通配W映的Web应用E序用户只能望ASP.NET 2.0心叹。最q花了很大精力想把博客园的程序迁UdASP.NET 2.0Q而结果却是无法迁UdASP.NET 2.0Qo人失? 只能寄希望微软推出相应的补丁?
     q好Q用通配W映的Web应用E序不是很多Q这个问题媄响不是很大?



圣域飞侠 2006-09-20 13:36 发表评论
]]>
如何生成静态页http://www.aygfsteel.com/yeiwei/articles/70772.html圣域飞侠圣域飞侠Wed, 20 Sep 2006 05:35:00 GMThttp://www.aygfsteel.com/yeiwei/articles/70772.htmlhttp://www.aygfsteel.com/yeiwei/comments/70772.htmlhttp://www.aygfsteel.com/yeiwei/articles/70772.html#Feedback0http://www.aygfsteel.com/yeiwei/comments/commentRss/70772.htmlhttp://www.aygfsteel.com/yeiwei/services/trackbacks/70772.html Ҏ(gu)1Q?br />/// <summary>
/// 传入URLq回|页的html代码
/// </summary>
/// <param name="Url">URL</param>
/// <returns></returns>
public static  string getUrltoHtml(string Url)
{
errorMsg = "";
try
{
System.Net.WebRequest wReq = System.Net.WebRequest.Create(Url);
// Get the response instance.
System.Net.WebResponse wResp =wReq.GetResponse();
// Read an HTTP-specific property
//if (wResp.GetType() ==HttpWebResponse)
//{
//DateTime updated  =((System.Net.HttpWebResponse)wResp).LastModified;
//}
// Get the response stream.
System.IO.Stream respStream  = wResp.GetResponseStream();
// Dim reader As StreamReader = New StreamReader(respStream)
System.IO.StreamReader reader = new System.IO.StreamReader(respStream, System.Text.Encoding.GetEncoding("gb2312"));
return  reader.ReadToEnd();

}
catch(System.Exception ex)
{
errorMsg = ex.Message ;
}
return "";
}

你可以用q个函数获取|页的客L的html代码Q然后保存到.html文g里就可以了?/font>

Ҏ(gu)2Q?br />生成单个的静态页面不是难点,隄是各个静态页面间的关联和链接如何保持完整Q?br />特别是在面频繁更新、修攏V或删除的情况下Q?/font>

像阿里巴巴的面也全部是html的,估计用的是地址映射的功?br />关于地址映射可参考: http://www.easewe.com/Article/ShowArticle.aspx?article=131

可以看看q个面Q分析一下他的“竞价倒计时”功?br /> http://info.china.alibaba.com/news/subject/v1-s5011580.html?head=top4&Bidding=home5

ASP.Net生成静态HTML?br />在Asp中实现的生成静态页用到的FileSystemObject对象!
?Net中涉及此cL作的是System.IO
以下是程序代??此代码非原创!参考别Z?/font>

  CODE:  
//生成HTML?br />  public static bool WriteFile(string strText,string strContent,string strAuthor)
  {
   string path = HttpContext.Current.Server.MapPath("/news/");
   Encoding code = Encoding.GetEncoding("gb2312");
   // d模板文g
   string temp = HttpContext.Current.Server.MapPath("/news/text.html");
   StreamReader sr=null;
   StreamWriter sw=null;
   string str=""; 
   try
   {
    sr = new StreamReader(temp, code);
    str = sr.ReadToEnd(); // d文g
   }
   catch(Exception exp)
   {
    HttpContext.Current.Response.Write(exp.Message);
    HttpContext.Current.Response.End();
    sr.Close();
   }
 
  
   string htmlfilename=DateTime.Now.ToString("yyyyMMddHHmmss")+".html";
   // 替换内容
   // q时,模板文g已经d到名UCؓstr的变量中?br />   str =str.Replace("ShowArticle",strText); //模板中的ShowArticle
   str = str.Replace("biaoti",strText);
   str = str.Replace("content",strContent);
   str = str.Replace("author",strAuthor);
   // 写文?br />   try
   {
    sw = new StreamWriter(path + htmlfilename , false, code);
    sw.Write(str);
    sw.Flush();
   }
   catch(Exception ex)
   {
    HttpContext.Current.Response.Write(ex.Message);
    HttpContext.Current.Response.End();
   }
   finally
   {
    sw.Close();
   }
   return true;

此函数放在Conn.CS基类中了
在添加新ȝ代码中引?注:工程名ؓHover

    if(Hover.Conn.WriteFilethis.Title.Text.ToString),this.Content.Text.ToString),this.Author.Text.ToString)))
    {
     Response.Write("d成功");
    }
    else
    {
     Response.Write("生成HTML出错!");
    }
 


模板Text.html代码


  CODE:  
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
  <title>ShowArticle</title>
   <body>
biaoti
<br/>
content<br/>
author
</body>
</HTML>
biaoti
<br/>
content<br/>
author
</body>
</HTML>
 
提示d成功后会Z当前旉为文件名的html文g!上面只是把传递过来的几个参数直接写入了HTML文g?在实际应用中需要先d数据库,然后再写入HTML文g

Ҏ(gu)3Q?br />l一个客L参考的例子QSJQ?br />它的作用在于以客L的方式获取某个页面的代码Q然后可以做为其他用途,本例是直接输?br /><script>
    var oXmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    oXmlHttp.open("GET","
http://www.163.com ", false);
    oXmlHttp.send()
    var oStream = new ActiveXObject("ADODB.Stream");
    if(oStream == null)
        alert("(zhn)的机器不支持ADODB.Stream.")
    else
    {
        oStream.Type=1;
        oStream.Mode=3;
        oStream.Open() ;
        oStream.Write(oXmlHttp.responseBody);
        oStream.Position= 0;
        oStream.Type= 2;
        oStream.Charset="gb2312";
        var result= oStream.ReadText();
        oStream.Close();
        oStream = null;
  var aa = window.open("","")
  document.write(result);
        aa.document.write(result);
    }
</script>

Ҏ(gu)4Q学csdn一栗用xml保存数据Q模版XSL也只有一个文件?br />使用xml来保存数据,使用xsl来定义模板ƈ且生U数据。可以通过xsl来很方便的在客户端或者服务段昄数据。如果要生成静态叶面那更简单了。去查一?net的xmlcd问题解决?br />            优点Q可以方便快速{换成你想要的格式和内宏V?br />            ~点Q需要学习更多的内容Q不好入门?/font>

Ҏ(gu)5Q?br />思\

  1. 利用如Dw-Mxq样的工L成html格式的模板,在需要添加格式的地方加入Ҏ(gu)标记(?htmlformat$),动态生成文件时利用代码d此模板,然后获得前台输入的内容,d到此模板的标C|中Q生成新文g名后写入盘Q写入后再向数据库中写入相关数据?br />       2. 使用后台代码编码Html文gQ可以用HtmlTextWritercL写html文g?
优点

  1. 可以建立非常复杂的页面,利用包含js文g的方法,在js文g内加入document.write()Ҏ(gu)可以在所有页面内加入如页面头Q广告等内容?

  2. 静态html文g利用MS Windows2000的Index Server可以建立全文搜烦引擎Q利用asp.net可以以DataTable的方式得到搜索结果。而Win2000的Index服务无法查找xml文g的内宏V如果包括了数据库搜索与Index索引双重查找Q那么此搜烦功能非常强大?

  3. 节省服务器的负荷Q请求一个静态的html文g比一个aspx文g服务器资源节省许多?

  ~点

  思\二: 如果用硬~码的方式,工作量非常大Q需要非常多的html代码。调试困难。而且使用编码生成的html样式无法修改Q如果网站更换样式,那么必须得重新编码,l后期带来巨大的工作量?

  因此q里采用的是W一U思\

  C列代码

  1.定义(template.htm)html模板面

  QhtmlQ?

  QheadQ?

  QtitleQ</titleQ?

  Qmeta http-equiv="Content-Type" content="text/html; charset=gb2312"Q?

  Q?headQ?

  Qbody Q?

  Qtable $htmlformat[0] height="100%" border="0" width="100%" cellpadding="10" cellspacing="0" bgcolor="#eeeeee" style="border:1px solid #000000"Q?

  QtrQ?

  Qtd width="100%" valign="middle" align="left"Q?

  Qspan style="color: $htmlformat[1];font-size: $htmlformat[2]"Q?htmlformat[3]Q?spanQ?

  Q?tdQ?

  Q?trQ?

  Q?tableQ?

  Q?bodyQ?

  Q?htmlQ?

  2.asp.net代码Q?

  //---------------------读html模板面到stringbuilder对象?---

  string[] format=new string[4];//定义和htmlyem标记数目一致的数组

  StringBuilder htmltext=new StringBuilder();

  try

  {

   using (StreamReader sr = new StreamReader("存放模板面的\径和面?))

   {

  String line;

  while ((line = sr.ReadLine()) != null)

  {

   htmltext.Append(line);

  }

  sr.Close();

   }

  }

  catch

  {

   Response.Write("QScriptQalert('d文g错误')Q?ScriptQ?);

  }

  //---------------------l标记数l赋?-----------

  format[0]="background="bg.jpg"";//背景囄

  format[1]= "#990099";//字体颜色

  format[2]="150px";//字体大小

  format[3]= "QmarqueeQ生成的模板html面Q?marqueeQ?;//文字说明

  //----------替换htm里的标记Z惛_的内?

  for(int i=0;iQ?;i++)

  {

   htmltext.Replace("$htmlformat["+i+"]",format[i]);

  }

  //----------生成htm文g------------------―?

  try

  {

   using(StreamWriter sw=new StreamWriter("存放路径和页面名",false,System.Text.Encoding.GetEncoding("GB2312")))

  {

   sw.WriteLine(htmltext);

   sw.Flush();

   sw.Close();

  }

  }

  catch

  {

  Response.Write ("The file could not be wirte:");

  }

  结
  用此Ҏ(gu)可以方便的生成html文g。程序用了是@环替换,因此寚w替换大量元素的模杉K度非常快?/font>



圣域飞侠 2006-09-20 13:35 发表评论
]]>
?NET 2.0 中发送Email http://www.aygfsteel.com/yeiwei/articles/70762.html圣域飞侠圣域飞侠Wed, 20 Sep 2006 05:07:00 GMThttp://www.aygfsteel.com/yeiwei/articles/70762.htmlhttp://www.aygfsteel.com/yeiwei/comments/70762.htmlhttp://www.aygfsteel.com/yeiwei/articles/70762.html#Feedback0http://www.aygfsteel.com/yeiwei/comments/commentRss/70762.htmlhttp://www.aygfsteel.com/yeiwei/services/trackbacks/70762.html刚刚看到一关于在.NET 中发送Email的文章?/font> 从asp.net面发送电(sh)子邮?/font> 》看C用的q是System.Web.Mail命名I间下的cR我们都知道Q在.NET 1.1下大部分都是使用q个命名I间下的cL发送邮件的Q用SmtpMail的Send静态方法可以很单的发送EmailQ但׃q个c调用的是Windows2000版本以上的操作系l的CDOlg来发送邮Ӟ不管是什么错误都会提C是CDO.Message对象无法讉K或其它的CDO.Message异常Q我们无法得到很比较详细的异怿息,l我们的调试带来的很大的不便。特别是当我们需要Smtp验证的话Q还要给MailMessaged三个邮g头定义,相对来说q是比较ȝ的。那么在.NET 2.0下,发送Email的功能已l被设计得非常好了,利用System.Net.MailI间下的cd以让我们很简单地发送各UEmail。但是ؓ了兼容原来的版本Q所以System.Web.MailI间q没有被删除Q这个空间下的类也都被打上Obsolete标记了,使用.NET 2.0 框架~译的话都会提示推荐使用System.Net.MailI间的类来代ѝ?

 

下面我们来看看需要做哪些事才能发送Email的,在这里我也找C园子里一关?NET 2.0发送Email的文章?/font> Z .NET 2.0 System.Net.Mail namespace 的邮件发送组?/font> 》,它涵盖了发送和接收邮g。在本篇里,我们只讨论如何发送的Q我感觉它那边好像没有真正用好配|文件。还要自qSmtpClient指定Stmp帐号的一些信息,事实上我们只需要通过web.config(或app.config)配置一下我们将要用的Smtp帐号Q?

<configuration>

    <system.net>

        <mailSettings>

            <smtp from="hjf1223@tom.com">

                <network host="smtp.tom.com" password=" " port="25" userName="hjf1223" defaultCredentials="false"/>

            </smtp>

        </mailSettings>

    </system.net>

</configuration>

        .NET 2.0的配|系l就是强大,我们完全不用d考Q何的资料可以非常简单的写出如上的配|了。如上,from属性就是你要从哪个邮发送EmailQhost是smtp服务器地址了,password,port,userName׃用多说了Q至于defaultCredentials需要注意了Q当我们不需要smtp服务器验证发送用hQ就它设ؓfalseQ反之就设ؓtrueQ当前大多数SMTP服务器都需要用户验证的Q所以一般情况下都就设ؓtrueQ让它用我们配|好的用户名和密码去验证是否是合法用戗?

        配置文g写好了,接一来就是程序如何调用了Q等我写出如下的发送Email后,你就感到非常奇怪,真的p么简单吗Q是的,是q么单,来看看:

        MailMessage m_message = new MailMessage();

m_message.From = new MailAddress("hjf1223@tom.com");

m_message.To.Add(new MailAddress("hjf1223@gmail.com"));

m_message.Subject = "使用.NET 2.0发送邮?;

m_message.Body = "非常?";

SmtpClient m_smtpClient = new SmtpClient();

m_smtpClient.Send(m_message);

        我们甚至没有一句多余的代码Q就是构造一个MailMessage对象Q然后构造一个SmtpClient直接利用它发送邮件了。比起原来的静态方法,没有多一句代码。这里有的朋友可能就要问了?那smtp帐户信息哪里来呢Q其实你可以调试一下,q时候m_smtpClient对象里属性就是我们前面配|文仉|的g。在构重一个SmtpClientӞ会自动去dsystem.net配置节下的|如果用户有配|smtp信息的话Q那么它?yu)会被自动被始到当前的SmtpClient对象Q进而利用它d送Email。在.NET 2.0中发送邮件就只要做这么多工作了,而且非常E_?

        ȝQ虽然在.NET 2.0下,使用System.Web.Mail发送邮件很单,在错误的时候也可以得到比较详细的异怿息,但是有时候出现的问题也会让你怸着头脑。最l常出现的是Q当你的机器有安装杀毒防火墙Q有可能会发不出邮gQ但是提CZ息却让你无法诊断是哪里出问题了,大意是邮件发送被拒绝。出现这U事冉|׃防火墙拒l了我们?5端口的用,从而造成无法与SMTP服务器正帔R信。解军_法就是关闭它了,怿|上已经有很多的案例了。还有一点要特别注意Q要发送邮件的机器必须是直接外|的Q由于公司是通过代理上网Q所以这个印象特别深?上面的代码还有一炚w要注意,MailMessage对象的From值必d配置文g中From值是一LQ这里好像也可以不用设,大家可以试一下?



圣域飞侠 2006-09-20 13:07 发表评论
]]>
日志记录lg[Log4net]详细介绍http://www.aygfsteel.com/yeiwei/articles/70761.html圣域飞侠圣域飞侠Wed, 20 Sep 2006 05:06:00 GMThttp://www.aygfsteel.com/yeiwei/articles/70761.htmlhttp://www.aygfsteel.com/yeiwei/comments/70761.htmlhttp://www.aygfsteel.com/yeiwei/articles/70761.html#Feedback0http://www.aygfsteel.com/yeiwei/comments/commentRss/70761.htmlhttp://www.aygfsteel.com/yeiwei/services/trackbacks/70761.html阅读全文

圣域飞侠 2006-09-20 13:06 发表评论
]]>
所阅读的ASP.NET 2.0文章http://www.aygfsteel.com/yeiwei/articles/70759.html圣域飞侠圣域飞侠Wed, 20 Sep 2006 04:58:00 GMThttp://www.aygfsteel.com/yeiwei/articles/70759.htmlhttp://www.aygfsteel.com/yeiwei/comments/70759.htmlhttp://www.aygfsteel.com/yeiwei/articles/70759.html#Feedback0http://www.aygfsteel.com/yeiwei/comments/commentRss/70759.htmlhttp://www.aygfsteel.com/yeiwei/services/trackbacks/70759.html http://www.asp.net/QUICKSTART/aspnet/default.aspx

Migrating from ASP.NET 1.x to ASP.NET 2.0

Common ASP.NET 2.0 Conversion Issues and Solutions

Personalization

Data Access

Master Pages

ASP.NET Development Server

From Sharepoint to ASP.NET 2.0WebParts

Personalize Your Portal with User Controls and Custom Web Parts

Introducing the ASP.NET 2.0 Web Parts Framework

Master Pages in ASP.NET 2.0

ASP.NET 2.0 Security

圣域飞侠 2006-09-20 12:58 发表评论
]]>
վ֩ģ壺 ڻ| | | | ³ƶ| ¹| | ͨμ| | | ޻| ˺| | | «| | | Ƥɽ| | | | Ͷ| | | ˹| ƽ| | °| Ѯ| | | | | ƽ| | | | | ߴ| | ʯ|