<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type='text/xsl' href='http://ioriwellings.spaces.live.com/mmm2008-07-24_12.50/rsspretty.aspx?rssquery=en-US;http%3a%2f%2fioriwellings.spaces.live.com%2fcategory%2fAsp%2b__x1NET%2ffeed.rss' version='1.0'?><rss version="2.0" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:msn="http://schemas.microsoft.com/msn/spaces/2005/rss" xmlns:live="http://schemas.microsoft.com/live/spaces/2006/rss" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:cf="http://www.microsoft.com/schemas/rss/core/2005" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>不及格的程序员-八神: Asp .NET</title><description /><link>http://ioriwellings.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&amp;_c=BlogPart&amp;partqs=catAsp%2b__x1NET</link><language>en-US</language><pubDate>Thu, 14 Aug 2008 06:40:01 GMT</pubDate><lastBuildDate>Thu, 14 Aug 2008 06:40:01 GMT</lastBuildDate><generator>Microsoft Spaces v1.1</generator><docs>http://www.rssboard.org/rss-specification</docs><ttl>60</ttl><cf:parentRSS>http://ioriwellings.spaces.live.com/blog/feed.rss</cf:parentRSS><live:type>blogcategory</live:type><live:identity><live:id>-3107968651015171382</live:id><live:alias>ioriwellings</live:alias></live:identity><cf:listinfo><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="typelabel" label="Type" /><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="tag" label="Tag" /><cf:group element="category" label="Category" /><cf:sort element="pubDate" label="Date" data-type="date" default="true" /><cf:sort element="title" label="Title" data-type="string" /><cf:sort ns="http://purl.org/rss/1.0/modules/slash/" element="comments" label="Comments" data-type="number" /></cf:listinfo><item><title>ASP.NET 分布式高级编程</title><link>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!1201.entry</link><description>&lt;div&gt;星期五 天气:晴 很热&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;pre style="overflow:auto;width:510px;height:400px"&gt;.net 中的分布式事务编程方法

在上一篇中我写下了,几个名词解释;
MTS:微软事务服务器,这里是一个运行环境,支持着事务的各种特性.
MS DTC: 事务服务器中的核心-事务协调器,事务的产生就是从这里调用相应API返回的.

从最早的.net 1.1中,如果要实现分布的事务,我想只能用COM+的服务组件方式了:

using System.EnterpriseServices;

[Transaction]

public class Product : ServicedComponent
{
  [AutoComplete]
  public void InsertProduct()
  {
    /*与其他服务组件和源管理器交互*/
  }
}

在.net 2.0中,我有两种方法了,加上上面的就是三种.

1. 不通过服务组件使用事务,需要WinXP SP2或Win Server 2003:

ServiceConfig config = new ServiceConfig(); 
config.Transaction = TransactionOption.Required;
//... 开始事务代码
ServiceDomain.Enter(config);
/*这里具体做些什么随便*/
// 结束事务代码
TransactionStatus status = ServiceDomain.Leave(); 

2. 使用事务范围做可提升的事务,需要SQL Server 2005以上版本

using (TransactionScope scope = new TransactionScope())
{
    /*这里具体做些什么随便&lt;br&gt;    可用于多个数据库链接操作 &lt;br&gt;    */
}


附加:

灵活的控制事务:

    CommittableTransaction trans = new CommittableTransaction();

    try
    {
      using (SqlConnection connection = new SqlConnection(&amp;quot;...&amp;quot;))
      {
        string sql = &amp;quot;...&amp;quot;;
        // 打开连接，在事务范围中登记此连接
        connection.Open();
        SqlCommand command = new SqlCommand(sql, connection);
        //在当前事务的范围中登记事务
        connection.EnlistTransaction(trans);
        command.ExecuteNonQuery();
        // 如果每一个执行都成功，则提交事务
        trans.Commit();
      }      
    }
    catch (Exception ex)
    {
      // 如果出现异常，则回滚事务
      trans.Rollback();
    }

ASP.NET中的自动化事务: 
&amp;lt;%@ Page Transaction=&amp;quot;Required&amp;quot; %&amp;gt;

void Page_Load(object sender, System.EventArgs e)
{
	AbortTransaction += new System.EventHandler(AbortTransactionEvent); 
	CommitTransaction += new System.EventHandler(CommitTransactionEvent); 
	try
	{
	  /* 在这里放置事务性代码 */
	  ContextUtil.SetComplete();
	}
	catch(Exception)
	{
	  ContextUtil.SetAbort();
	}
}

void AbortTransactionEvent(object sender,System.EventArgs e)
{
  /*用于回滚行为的代码*/
}
void CommitTransactionEvent(object sender,System.EventArgs e)
{
  /*用于提交行为的代码*/
}&lt;/pre&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-3107968651015171382&amp;page=RSS%3a+ASP.NET+%e5%88%86%e5%b8%83%e5%bc%8f%e9%ab%98%e7%ba%a7%e7%bc%96%e7%a8%8b&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=ioriwellings.spaces.live.com&amp;amp;GT1=ioriwellings"&gt;</description><comments>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!1201.entry#comment</comments><guid isPermaLink="true">http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!1201.entry</guid><pubDate>Fri, 23 May 2008 00:46:51 GMT</pubDate><slash:comments>1</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://ioriwellings.spaces.live.com/blog/cns!D4DE46FA8730D2CA!1201/comments/feed.rss</wfw:commentRss><wfw:comment>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!1201.entry#comment</wfw:comment><dcterms:modified>2008-05-23T01:01:44Z</dcterms:modified></item><item><title>GDI+ 中发生一般性错误</title><link>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!1199.entry</link><description>&lt;div&gt;星期二 天气：晴&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;pre style="overflow:auto;width:450px;height:300px"&gt;private void btnWriteImage_Click(object sender, EventArgs e)
		{
			string strImageFormat = &amp;quot;image/png&amp;quot;;
			Response.AppendHeader(&amp;quot;Cache-Control&amp;quot;, &amp;quot;no-cache&amp;quot;);
			Response.AppendHeader(&amp;quot;Pragma&amp;quot;, &amp;quot;no-cache&amp;quot;);
			Response.AppendHeader(&amp;quot;Content-Type&amp;quot;, strImageFormat);
			Response.Clear();
			using (Bitmap image = new Bitmap(600, 200))
			{
				Pen blackPen = new Pen(Color.FromArgb(0x97, 0x97, 0xbc), 1f);
				float fSize = float.Parse(this.cboFontSize.SelectedItem.Text);
				Font font = new Font(this.cboFonts.SelectedItem.Text, fSize);
				using (Graphics g = Graphics.FromImage(image))
				{
					g.TextRenderingHint = TextRenderingHint.AntiAlias;
					g.Clear(Color.FromArgb(0xff, 0xff, 0xff));
					//g.DrawRectangle(blackPen, 0, 0, 0x12b, 0xc7);
					System.Text.StringBuilder strValue = new System.Text.StringBuilder(this.txtMaxim.Text);
					g.TextRenderingHint = TextRenderingHint.ClearTypeGridFit;
					g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
					g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;					
					int i=0;
					System.IO.StringReader strReader = new System.IO.StringReader(strValue.ToString());
					string temp;
					while((temp = strReader.ReadLine()) != null)
					{
						g.DrawString(temp, font, Brushes.Black, new PointF(1f, i*fSize+ i*fSize/2));
						i++;
					}
				}
				ImageCodecInfo myImageCodecInfo = GetEncoderInfo(strImageFormat);				
				Encoder myEncoder = Encoder.Quality;				
				EncoderParameters myEncoderParameters = new EncoderParameters(1);				
				EncoderParameter myEncoderParameter = new EncoderParameter(myEncoder, 100L);
				myEncoderParameters.Param[0] = myEncoderParameter;
                                //这里会引发错误，如果指定一个文件路径的话就可以，可能是不扶持HTTP协议				&lt;br&gt;                                image.Save(this.Response.OutputStream, myImageCodecInfo, myEncoderParameters);
			}
		}

		private ImageCodecInfo GetEncoderInfo(String mimeType)
		{
			int j;
			ImageCodecInfo[] encoders = ImageCodecInfo.GetImageEncoders();
			for(j = 0; j &amp;lt; encoders.Length; ++j)
			{
				if(encoders[j].MimeType.ToLower() == mimeType.ToLower())
					return encoders[j];
			}
			return null;
		}&lt;/pre&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-3107968651015171382&amp;page=RSS%3a+GDI%2b+%e4%b8%ad%e5%8f%91%e7%94%9f%e4%b8%80%e8%88%ac%e6%80%a7%e9%94%99%e8%af%af&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=ioriwellings.spaces.live.com&amp;amp;GT1=ioriwellings"&gt;</description><comments>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!1199.entry#comment</comments><guid isPermaLink="true">http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!1199.entry</guid><pubDate>Tue, 20 May 2008 08:39:10 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://ioriwellings.spaces.live.com/blog/cns!D4DE46FA8730D2CA!1199/comments/feed.rss</wfw:commentRss><wfw:comment>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!1199.entry#comment</wfw:comment><dcterms:modified>2008-05-20T08:41:15Z</dcterms:modified></item><item><title>LINQ 媚力</title><link>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!1184.entry</link><description>&lt;div&gt;星期日, 天气:阵雨&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;节后的第一天上班 居然是星期日 不爽&lt;/div&gt;
&lt;div&gt;在5.1节日里 用了很多的时间去了解LINQ, 在C# 3.0中加入的这项新技术,真的让我眼前一亮.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;用它去编码真的是非常酷的一件事, 通常情况下用很多代码才能实现的功能,而它却只用一行表达式就可以搞定.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;例如:&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;数据的排序
&lt;li&gt;过滤
&lt;li&gt;数据库映射&lt;/ul&gt;
&lt;p&gt;等等 它的功能还等待着程序员去挖觉.
&lt;div&gt; &lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-3107968651015171382&amp;page=RSS%3a+LINQ+%e5%aa%9a%e5%8a%9b&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=ioriwellings.spaces.live.com&amp;amp;GT1=ioriwellings"&gt;</description><comments>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!1184.entry#comment</comments><guid isPermaLink="true">http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!1184.entry</guid><pubDate>Sun, 04 May 2008 02:28:10 GMT</pubDate><slash:comments>1</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://ioriwellings.spaces.live.com/blog/cns!D4DE46FA8730D2CA!1184/comments/feed.rss</wfw:commentRss><wfw:comment>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!1184.entry#comment</wfw:comment><dcterms:modified>2008-05-04T02:28:10Z</dcterms:modified></item><item><title>视图状态与控件创建层次</title><link>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!1177.entry</link><description>&lt;div&gt;星期二 天气:晴 大风&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;最近在编写DataGrid控件,研究子控件们如何存取它们的视图状态&lt;/div&gt;
&lt;div&gt;最后发现视图状态同样的分层次,它们和控件的层次一一对应.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;就是说页面上的父控件,是一层一层存的视图状态.&lt;/div&gt;
&lt;div&gt;同时回发时,又一层一层读回来,在分配给各个子控件,分别调用它们的LoadViewState.&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-3107968651015171382&amp;page=RSS%3a+%e8%a7%86%e5%9b%be%e7%8a%b6%e6%80%81%e4%b8%8e%e6%8e%a7%e4%bb%b6%e5%88%9b%e5%bb%ba%e5%b1%82%e6%ac%a1&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=ioriwellings.spaces.live.com&amp;amp;GT1=ioriwellings"&gt;</description><comments>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!1177.entry#comment</comments><guid isPermaLink="true">http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!1177.entry</guid><pubDate>Tue, 04 Mar 2008 06:28:25 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://ioriwellings.spaces.live.com/blog/cns!D4DE46FA8730D2CA!1177/comments/feed.rss</wfw:commentRss><wfw:comment>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!1177.entry#comment</wfw:comment><dcterms:modified>2008-03-04T06:28:25Z</dcterms:modified></item><item><title>VS 2008 故障</title><link>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!1176.entry</link><description>&lt;div&gt;星期五 天气:晴&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;这些天发现2008无论打开什么项目之后,界面都不响应&lt;/div&gt;
&lt;div&gt;今天仔细研究发现它起动了一个内部进程,&lt;/div&gt;
&lt;div&gt;运行 C:\Program Files\Common Files\Microsoft Shared\OFFICE12\Office Setup Controller\Setup.exe文件&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;应该是该文件引起的ui停止响应,直接运行该文件果然,它是向导式操作,一步一步之后,2008终于可以正常开发了.&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-3107968651015171382&amp;page=RSS%3a+VS+2008+%e6%95%85%e9%9a%9c&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=ioriwellings.spaces.live.com&amp;amp;GT1=ioriwellings"&gt;</description><comments>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!1176.entry#comment</comments><guid isPermaLink="true">http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!1176.entry</guid><pubDate>Fri, 29 Feb 2008 03:03:04 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://ioriwellings.spaces.live.com/blog/cns!D4DE46FA8730D2CA!1176/comments/feed.rss</wfw:commentRss><wfw:comment>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!1176.entry#comment</wfw:comment><dcterms:modified>2008-02-29T03:03:04Z</dcterms:modified></item><item><title>VS 2008</title><link>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!1149.entry</link><description>&lt;div&gt;星期五 天气:晴&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;今天是08年第一天上班,前两天休了年假,明天后天还要休息 呵呵&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;今天装了 vs2008英文版 在我的机器上比2003慢多了 ...&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-3107968651015171382&amp;page=RSS%3a+VS+2008&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=ioriwellings.spaces.live.com&amp;amp;GT1=ioriwellings"&gt;</description><comments>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!1149.entry#comment</comments><guid isPermaLink="true">http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!1149.entry</guid><pubDate>Fri, 04 Jan 2008 03:27:44 GMT</pubDate><slash:comments>1</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://ioriwellings.spaces.live.com/blog/cns!D4DE46FA8730D2CA!1149/comments/feed.rss</wfw:commentRss><wfw:comment>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!1149.entry#comment</wfw:comment><dcterms:modified>2008-01-04T03:27:44Z</dcterms:modified></item><item><title>Windows 2000 Server 上.net1.1 框架与我们的dll版本不一致</title><link>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!1111.entry</link><description>&lt;div&gt;星期三 天气:晴&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;在昨天同事测试的时候发现服务器端验证控件在本地调试好使,可是上传到服务器上后&lt;/div&gt;
&lt;div&gt;虽然验证都通过但是表单却还未提交,查找问题看源码以及dll源码&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;原来在System.web.dll中的BaseValidator.RegisterValidatorCommonScript方法&lt;/div&gt;
&lt;div&gt;产生的客户端脚本不一样 稍稍有一点的不同,结果就是... &lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-3107968651015171382&amp;page=RSS%3a+Windows+2000+Server+%e4%b8%8a.net1.1+%e6%a1%86%e6%9e%b6%e4%b8%8e%e6%88%91%e4%bb%ac%e7%9a%84dll%e7%89%88%e6%9c%ac%e4%b8%8d%e4%b8%80%e8%87%b4&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=ioriwellings.spaces.live.com&amp;amp;GT1=ioriwellings"&gt;</description><comments>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!1111.entry#comment</comments><guid isPermaLink="true">http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!1111.entry</guid><pubDate>Wed, 05 Sep 2007 01:23:03 GMT</pubDate><slash:comments>2</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://ioriwellings.spaces.live.com/blog/cns!D4DE46FA8730D2CA!1111/comments/feed.rss</wfw:commentRss><wfw:comment>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!1111.entry#comment</wfw:comment><dcterms:modified>2007-09-05T01:23:03Z</dcterms:modified></item><item><title>自定义格式化</title><link>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!1108.entry</link><description>&lt;div&gt;星期二 天气:晴&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;越来越冷了 早晚 &lt;/div&gt;
&lt;div&gt;微软的这个方式挺好 但是很模糊&lt;/div&gt;
&lt;div&gt;第一种方式是类的开发者角度格式化,后者为类的使用者角度格式化,缺点是后者不如前者了解类的内部结构.&lt;/div&gt;&lt;pre style="overflow:auto;width:563px;height:300px"&gt;&lt;p&gt;using System;&lt;p&gt;namespace CSharpConsole&lt;br&gt;{&lt;p&gt; public class Start&lt;br&gt; {&lt;p&gt;  [STAThread]&lt;br&gt;  static void Main(string[] args)&lt;br&gt;  { &lt;br&gt;   Console.Write(new Employess().ToString(&amp;quot;xml&amp;quot;, new FormatProvider()));   &lt;br&gt;   Console.Write(string.Format(new FormatProvider(), &amp;quot;{0:xml}&amp;quot;, new object[]{new Employess()}));&lt;br&gt;   Console.Read();&lt;br&gt;  }&lt;br&gt; }&lt;p&gt; public class Employess : System.IFormattable&lt;br&gt; {&lt;br&gt;  private string strName = &amp;quot;Iori&amp;quot;;&lt;p&gt;  public string ToString(string format, IFormatProvider formatProvider)&lt;br&gt;  {&lt;br&gt;   if (format == null || format.Trim() == &amp;quot;&amp;quot;)&lt;br&gt;   {&lt;br&gt;    return strName;&lt;br&gt;   }&lt;p&gt;   if(formatProvider != null)&lt;br&gt;   {&lt;br&gt;    ICustomFormatter fmt = formatProvider.GetFormat(typeof(ICustomFormatter)) as ICustomFormatter;&lt;p&gt;    if ( fmt != null )&lt;br&gt;    {&lt;br&gt;     return fmt.Format( format, this, formatProvider );&lt;br&gt;    }&lt;br&gt;   }&lt;p&gt;   switch(format)&lt;br&gt;   {&lt;br&gt;    case &amp;quot;G&amp;quot; :   &lt;br&gt;    default :&lt;br&gt;     return strName;&lt;br&gt;   }&lt;br&gt;  }&lt;br&gt; }&lt;p&gt; public class FormatProvider : System.IFormatProvider, System.ICustomFormatter&lt;br&gt; {&lt;br&gt;  public object GetFormat(Type formatType)&lt;br&gt;  {   &lt;br&gt;   if (formatType == typeof (ICustomFormatter))&lt;br&gt;   {&lt;br&gt;    return this;&lt;br&gt;   }&lt;br&gt;   else&lt;br&gt;   {&lt;br&gt;    return null;&lt;br&gt;   }&lt;p&gt;  }&lt;br&gt;  public string Format(string format, object arg, IFormatProvider formatProvider)&lt;br&gt;  {   &lt;br&gt;   if (format == null || format.Trim() == &amp;quot;&amp;quot;)&lt;br&gt;   {&lt;br&gt;    return arg.ToString();&lt;br&gt;   }&lt;br&gt;   &lt;br&gt;   if (format.StartsWith(&amp;quot;xml&amp;quot;)) &lt;br&gt;   { &lt;br&gt;    return &amp;quot;&amp;lt;xml&amp;gt;&amp;quot;+arg.ToString()+&amp;quot;&amp;lt;/xml&amp;gt;&amp;quot;;&lt;br&gt;   }&lt;p&gt;   return &amp;quot;noFormat&amp;quot;+arg.ToString();&lt;br&gt;  }&lt;br&gt; }&lt;br&gt;}&lt;br&gt;&lt;/pre&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-3107968651015171382&amp;page=RSS%3a+%e8%87%aa%e5%ae%9a%e4%b9%89%e6%a0%bc%e5%bc%8f%e5%8c%96&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=ioriwellings.spaces.live.com&amp;amp;GT1=ioriwellings"&gt;</description><comments>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!1108.entry#comment</comments><guid isPermaLink="true">http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!1108.entry</guid><pubDate>Tue, 04 Sep 2007 00:57:13 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://ioriwellings.spaces.live.com/blog/cns!D4DE46FA8730D2CA!1108/comments/feed.rss</wfw:commentRss><wfw:comment>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!1108.entry#comment</wfw:comment><dcterms:modified>2007-09-04T01:03:41Z</dcterms:modified></item><item><title>脚本的 onSumbit 事件</title><link>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!1061.entry</link><description>&lt;div&gt;星期二 天气:多云&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;给同事解决一个问题 不过它的电脑使用环境 太糟了吧&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;键盘的 按钮 不好按不说 ,鼠标 移动 也费劲呀...&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;我们有一个组件,在表单提交时 会执行一段脚本, 记录输入的数据 &lt;/div&gt;
&lt;div&gt;但是同事表单中还有一个下拉列表框,是带回发事件的,问题来了.&lt;/div&gt;
&lt;div&gt;当它回发时 ,组件添加的表单onSumbit事件没有被执,导致输入到组件中的数据丢失...&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;解决办法 在下拉列表框的 onchange 的dopostback事件 前加入那段保存数据的脚本即可呀.&lt;/div&gt;
&lt;div&gt;公司 把那个组件 叫 DataWindow 呵呵 有趣&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;这周 绝定 要吃一次榴莲  看看 倒底啥味儿&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-3107968651015171382&amp;page=RSS%3a+%e8%84%9a%e6%9c%ac%e7%9a%84+onSumbit+%e4%ba%8b%e4%bb%b6&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=ioriwellings.spaces.live.com&amp;amp;GT1=ioriwellings"&gt;</description><comments>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!1061.entry#comment</comments><guid isPermaLink="true">http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!1061.entry</guid><pubDate>Tue, 03 Apr 2007 08:09:16 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://ioriwellings.spaces.live.com/blog/cns!D4DE46FA8730D2CA!1061/comments/feed.rss</wfw:commentRss><wfw:comment>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!1061.entry#comment</wfw:comment><dcterms:modified>2007-04-03T08:09:16Z</dcterms:modified></item><item><title>自定义SharePoint Services 的Web服务 上传文件</title><link>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!1059.entry</link><description>SharePoint 的web服务 比较特殊 wsdl,disco文件不能够自动生成,需要两个对应的 aspx 文件.&lt;br&gt;例如 服务叫 Service1.asmx 那么对应的 文件就是 Service1WSDL.aspx And Service1Disco.aspx 以下是我测试用的样例: 
&lt;div&gt;&lt;pre style="overflow:auto;width:500px;height:150px"&gt;WSDL
&amp;lt;%@ Page Language=&amp;quot;C#&amp;quot; Inherits=&amp;quot;System.Web.UI.Page&amp;quot;%&amp;gt;
&amp;lt;%@ Assembly Name=&amp;quot;Microsoft.SharePoint, Microsoft.SharePoint, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c&amp;quot; %&amp;gt;
&amp;lt;%@ Import Namespace=&amp;quot;Microsoft.SharePoint.Utilities&amp;quot; %&amp;gt;
&amp;lt;%@ Import Namespace=&amp;quot;Microsoft.SharePoint&amp;quot; %&amp;gt;
&amp;lt;% Response.ContentType = &amp;quot;text/xml&amp;quot;; %&amp;gt;
&amp;lt;discovery xmlns:xsd=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot; 
 xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; 
 xmlns=&amp;quot;http://schemas.xmlsoap.org/disco/&amp;quot;&amp;gt;
  &amp;lt;contractRef 
 ref=&amp;lt;% SPEncode.WriteHtmlEncodeWithQuote(Response, SPWeb.OriginalBaseUrl(Request) + &amp;quot;?wsdl&amp;quot;, '&amp;quot;'); %&amp;gt; 
 docRef=&amp;lt;% SPEncode.WriteHtmlEncodeWithQuote(Response, SPWeb.OriginalBaseUrl(Request), '&amp;quot;'); %&amp;gt;
 xmlns=&amp;quot;http://schemas.xmlsoap.org/disco/scl/&amp;quot; /&amp;gt;
  &amp;lt;soap address=&amp;lt;% SPEncode.WriteHtmlEncodeWithQuote(Response, SPWeb.OriginalBaseUrl(Request), '&amp;quot;'); %&amp;gt; 
 xmlns:q1=&amp;quot;http://defaultName/&amp;quot; 
 binding=&amp;quot;q1:CDocumentManagerSoap&amp;quot; 
 xmlns=&amp;quot;http://schemas.xmlsoap.org/disco/soap/&amp;quot; /&amp;gt;
&amp;lt;/discovery&amp;gt;

Disco
&amp;lt;%@ Page Language=&amp;quot;C#&amp;quot; Inherits=&amp;quot;System.Web.UI.Page&amp;quot;%&amp;gt;
&amp;lt;%@ Assembly Name=&amp;quot;Microsoft.SharePoint, Microsoft.SharePoint, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c&amp;quot; %&amp;gt;
&amp;lt;%@ Import Namespace=&amp;quot;Microsoft.SharePoint.Utilities&amp;quot; %&amp;gt;
&amp;lt;%@ Import Namespace=&amp;quot;Microsoft.SharePoint&amp;quot; %&amp;gt;
&amp;lt;% Response.ContentType = &amp;quot;text/xml&amp;quot;; %&amp;gt;
&amp;lt;definitions xmlns:http=&amp;quot;http://schemas.xmlsoap.org/wsdl/http/&amp;quot; xmlns:soap=&amp;quot;http://schemas.xmlsoap.org/wsdl/soap/&amp;quot; xmlns:s=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot; xmlns:s0=&amp;quot;http://defaultName/&amp;quot; xmlns:soapenc=&amp;quot;http://schemas.xmlsoap.org/soap/encoding/&amp;quot; xmlns:tm=&amp;quot;http://microsoft.com/wsdl/mime/textMatching/&amp;quot; xmlns:mime=&amp;quot;http://schemas.xmlsoap.org/wsdl/mime/&amp;quot; targetNamespace=&amp;quot;http://defaultName/&amp;quot; xmlns=&amp;quot;http://schemas.xmlsoap.org/wsdl/&amp;quot;&amp;gt;
  &amp;lt;types&amp;gt;
    &amp;lt;s:schema elementFormDefault=&amp;quot;qualified&amp;quot; targetNamespace=&amp;quot;http://defaultName/&amp;quot;&amp;gt;
      &amp;lt;s:element name=&amp;quot;Upload&amp;quot;&amp;gt;
        &amp;lt;s:complexType /&amp;gt;
      &amp;lt;/s:element&amp;gt;
      &amp;lt;s:element name=&amp;quot;UploadResponse&amp;quot;&amp;gt;
        &amp;lt;s:complexType&amp;gt;
          &amp;lt;s:sequence&amp;gt;
            &amp;lt;s:element minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;1&amp;quot; name=&amp;quot;UploadResult&amp;quot; type=&amp;quot;s:string&amp;quot; /&amp;gt;
          &amp;lt;/s:sequence&amp;gt;
        &amp;lt;/s:complexType&amp;gt;
      &amp;lt;/s:element&amp;gt;
    &amp;lt;/s:schema&amp;gt;
  &amp;lt;/types&amp;gt;
  &amp;lt;message name=&amp;quot;UploadSoapIn&amp;quot;&amp;gt;
    &amp;lt;part name=&amp;quot;parameters&amp;quot; element=&amp;quot;s0:Upload&amp;quot; /&amp;gt;
  &amp;lt;/message&amp;gt;
  &amp;lt;message name=&amp;quot;UploadSoapOut&amp;quot;&amp;gt;
    &amp;lt;part name=&amp;quot;parameters&amp;quot; element=&amp;quot;s0:UploadResponse&amp;quot; /&amp;gt;
  &amp;lt;/message&amp;gt;
  &amp;lt;portType name=&amp;quot;CDocumentManagerSoap&amp;quot;&amp;gt;
    &amp;lt;operation name=&amp;quot;Upload&amp;quot;&amp;gt;
      &amp;lt;input message=&amp;quot;s0:UploadSoapIn&amp;quot; /&amp;gt;
      &amp;lt;output message=&amp;quot;s0:UploadSoapOut&amp;quot; /&amp;gt;
    &amp;lt;/operation&amp;gt;
  &amp;lt;/portType&amp;gt;
  &amp;lt;binding name=&amp;quot;CDocumentManagerSoap&amp;quot; type=&amp;quot;s0:CDocumentManagerSoap&amp;quot;&amp;gt;
    &amp;lt;soap:binding transport=&amp;quot;http://schemas.xmlsoap.org/soap/http&amp;quot; style=&amp;quot;document&amp;quot; /&amp;gt;
    &amp;lt;operation name=&amp;quot;Upload&amp;quot;&amp;gt;
      &amp;lt;soap:operation soapAction=&amp;quot;http://defaultName/Upload&amp;quot; style=&amp;quot;document&amp;quot; /&amp;gt;
      &amp;lt;input&amp;gt;
        &amp;lt;soap:body use=&amp;quot;literal&amp;quot; /&amp;gt;
      &amp;lt;/input&amp;gt;
      &amp;lt;output&amp;gt;
        &amp;lt;soap:body use=&amp;quot;literal&amp;quot; /&amp;gt;
      &amp;lt;/output&amp;gt;
    &amp;lt;/operation&amp;gt;
  &amp;lt;/binding&amp;gt;
  &amp;lt;service name=&amp;quot;CDocumentManager&amp;quot;&amp;gt;
    &amp;lt;port name=&amp;quot;CDocumentManagerSoap&amp;quot; binding=&amp;quot;s0:CDocumentManagerSoap&amp;quot;&amp;gt;
      &amp;lt;soap:address location=&amp;lt;% SPEncode.WriteHtmlEncodeWithQuote(Response, SPWeb.OriginalBaseUrl(Request), '&amp;quot;'); %&amp;gt; /&amp;gt;
    &amp;lt;/port&amp;gt;
  &amp;lt;/service&amp;gt;
&amp;lt;/definitions&amp;gt;

Soucre Code
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Web;
using System.Web.Services;

using Microsoft.SharePoint;
using Microsoft.SharePoint.SoapServer;

namespace SharePointDemo
{
	/// 
	/// CDocumentManager 的摘要说明。
	/// 
	[WebService(Namespace=&amp;quot;http://defaultName/&amp;quot;)]
	public class CDocumentManager : System.Web.Services.WebService
	{
		public CDocumentManager()
		{
			//CODEGEN: 该调用是 ASP.NET Web 服务设计器所必需的
			InitializeComponent();
		}

		#region 组件设计器生成的代码
		
		//Web 服务设计器所必需的
		private IContainer components = null;
				
		/// 
		/// 设计器支持所需的方法 - 不要使用代码编辑器修改
		/// 此方法的内容。
		/// 
		private void InitializeComponent()
		{
		}

		/// 
		/// 清理所有正在使用的资源。
		/// 
		protected override void Dispose( bool disposing )
		{
			if(disposing &amp;amp;&amp;amp; components != null)
			{
				components.Dispose();
			}
			base.Dispose(disposing);		
		}
		
		#endregion

		// WEB 服务示例
		// HelloWorld() 示例服务返回字符串 Hello World
		// 若要生成，请取消注释下列行，然后保存并生成项目
		// 若要测试此 Web 服务，请按 F5 键

//		[WebMethod]
//		public string HelloWorld()
//		{
//			return &amp;quot;Hello World&amp;quot;;
//		}

		[WebMethod]
		public string Upload(/*string strDirName*/)
		{	
			Microsoft.SharePoint.SPWebCollection oWebs = Microsoft.SharePoint.WebControls.SPControl.GetContextSite(this.Context).AllWebs;
			System.Text.StringBuilder strResult = new System.Text.StringBuilder();
			
			foreach(Microsoft.SharePoint.SPWeb oWeb in oWebs)
			{				
				strResult.Append(oWeb.Url + &amp;quot;,name=&amp;quot; + oWeb.Name + &amp;quot; : &amp;quot; +oWeb.Webs.Count.ToString() + &amp;quot;\n&amp;quot;);
				strResult.Append(&amp;quot;Shared Documents: &amp;quot; + oWeb.GetFolder(&amp;quot;Shared Documents&amp;quot;).Exists.ToString() + &amp;quot;\n&amp;quot;);
				SPFolderCollection folders = oWeb.Folders;
				foreach (SPFolder folder in folders)
				{
					strResult.Append(&amp;quot;  &amp;quot; + folder.Name + &amp;quot;\n&amp;quot;);
				}
			}
			Microsoft.SharePoint.SPWeb oIoriWeb = oWebs[0].Site.OpenWeb(&amp;quot;/Sites/Iori/&amp;quot;);
			SPFolderCollection folders1 = oIoriWeb.Folders;
			foreach (SPFolder folder in folders1)
			{
				strResult.Append(&amp;quot;  &amp;quot; + folder.Name + &amp;quot;\n&amp;quot;);
			}
			strResult.Append(oIoriWeb.GetFolder(&amp;quot;DocLib/TestFolder&amp;quot;).Files.Add(&amp;quot;test.txt&amp;quot;, System.Text.Encoding.UTF7.GetBytes(new string('a',8*1024*1024))));
			oIoriWeb.Close();
			return strResult.ToString();
		}
	}
}

 &lt;/pre&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-3107968651015171382&amp;page=RSS%3a+%e8%87%aa%e5%ae%9a%e4%b9%89SharePoint+Services+%e7%9a%84Web%e6%9c%8d%e5%8a%a1+%e4%b8%8a%e4%bc%a0%e6%96%87%e4%bb%b6&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=ioriwellings.spaces.live.com&amp;amp;GT1=ioriwellings"&gt;</description><comments>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!1059.entry#comment</comments><guid isPermaLink="true">http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!1059.entry</guid><pubDate>Thu, 29 Mar 2007 01:38:28 GMT</pubDate><slash:comments>2</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://ioriwellings.spaces.live.com/blog/cns!D4DE46FA8730D2CA!1059/comments/feed.rss</wfw:commentRss><wfw:comment>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!1059.entry#comment</wfw:comment><dcterms:modified>2007-03-29T01:49:50Z</dcterms:modified></item><item><title>C# 没有多重继承</title><link>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!1036.entry</link><description>&lt;div&gt;星期三 天气:多云&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;天气真的暖和了 一点儿都不冷&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;同学夫妇今天 就来打扑克了 通常都是周未的 不过被我们打的落花流水&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;周五 要去 金皇冠会所 年未愉乐&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;正题:&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;多重继承(Multiple inheritance):通过多个基类来生成一个新类,这种语法正如料想的那样,只要继承图简单,MI也不复杂.&lt;br&gt;然而菱形的MI会引入许多二义性和奇异的情况.&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-3107968651015171382&amp;page=RSS%3a+C%23+%e6%b2%a1%e6%9c%89%e5%a4%9a%e9%87%8d%e7%bb%a7%e6%89%bf&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=ioriwellings.spaces.live.com&amp;amp;GT1=ioriwellings"&gt;</description><comments>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!1036.entry#comment</comments><guid isPermaLink="true">http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!1036.entry</guid><pubDate>Wed, 07 Feb 2007 14:26:37 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://ioriwellings.spaces.live.com/blog/cns!D4DE46FA8730D2CA!1036/comments/feed.rss</wfw:commentRss><wfw:comment>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!1036.entry#comment</wfw:comment><dcterms:modified>2007-02-07T14:26:37Z</dcterms:modified></item><item><title>脚本动态创建服务器文件上传控件</title><link>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!995.entry</link><description>&lt;div&gt;前台脚本：&lt;/div&gt;
&lt;div&gt;&lt;pre style="overflow:auto;width:758px;height:150px"&gt;&amp;lt;TABLE id=Table1 cellSpacing=1 cellPadding=1 width=300 border=1&amp;gt;&lt;br&gt;  &amp;lt;TR&amp;gt; &lt;br&gt;    &amp;lt;TD&amp;gt;&amp;lt;input type=&amp;quot;button&amp;quot; value=&amp;quot;添加附件&amp;quot;onclick=&amp;quot;addAttach()&amp;quot;&amp;gt;&amp;lt;/TD&amp;gt;&lt;br&gt;  &amp;lt;/TR&amp;gt;&lt;br&gt;&amp;lt;/TABLE&amp;gt;&lt;br&gt;&amp;lt;script language=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br&gt; function addAttach(){&lt;br&gt;  var fileUpload = document.createElement('&amp;lt;input type=file id=oAutoAttach runat=server&amp;gt;');&lt;br&gt;  var table = document.getElementById(&amp;quot;Table1&amp;quot;);&lt;br&gt;  var row = table.insertRow();&lt;br&gt;  var cell = row.insertCell();&lt;br&gt;  cell.appendChild(fileUpload);&lt;br&gt; }&lt;br&gt;&amp;lt;/script&amp;gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div&gt;前台脚本也可以用insertAdjacentHTML方法加入控件html代码&lt;/div&gt;
&lt;div&gt;&lt;br&gt; &lt;/div&gt;
&lt;div&gt;后台代码：&lt;/div&gt;
&lt;div&gt;&lt;pre style="overflow:auto;width:760px;height:150px"&gt;for(int i=0; i&amp;lt;this.Request.Files.AllKeys.Length; i++)&lt;br&gt;   {&lt;br&gt;    if(this.Request.Files.AllKeys[i].Equals(&amp;quot;oAutoAttach&amp;quot;))&lt;br&gt;    {&lt;br&gt;     this.Response.Write(this.Request.Files.Get(i).FileName);&lt;br&gt;    }&lt;br&gt;   }&lt;/pre&gt;&lt;/div&gt;集合类中用的是ArrayList 与 HashTable 所以顺序是一样的key与值。&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-3107968651015171382&amp;page=RSS%3a+%e8%84%9a%e6%9c%ac%e5%8a%a8%e6%80%81%e5%88%9b%e5%bb%ba%e6%9c%8d%e5%8a%a1%e5%99%a8%e6%96%87%e4%bb%b6%e4%b8%8a%e4%bc%a0%e6%8e%a7%e4%bb%b6&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=ioriwellings.spaces.live.com&amp;amp;GT1=ioriwellings"&gt;</description><comments>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!995.entry#comment</comments><guid isPermaLink="true">http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!995.entry</guid><pubDate>Wed, 30 Aug 2006 09:00:21 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://ioriwellings.spaces.live.com/blog/cns!D4DE46FA8730D2CA!995/comments/feed.rss</wfw:commentRss><wfw:comment>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!995.entry#comment</wfw:comment><dcterms:modified>2006-08-30T09:00:21Z</dcterms:modified></item><item><title>.NET的验证码</title><link>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!956.entry</link><description>&lt;div&gt;星期五　天气：多云&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;周未了　明后天去做什么呢　嘿嘿&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;pre&gt;&amp;lt;%@ Import Namespace=&amp;quot;System.Drawing.Drawing2D&amp;quot; %&amp;gt;
&amp;lt;%@ Import Namespace=&amp;quot;System.Drawing.Imaging&amp;quot; %&amp;gt;
&amp;lt;%@ Import Namespace=&amp;quot;System.Drawing&amp;quot; %&amp;gt;
&amp;lt;%@ Page language=&amp;quot;c#&amp;quot; %&amp;gt;
&amp;lt;SCRIPT language=c# runat=&amp;quot;server&amp;quot;&amp;gt;
Random rd = new Random();
void Page_Load(Object src,EventArgs e)
{
 Response.AppendHeader(&amp;quot;Cache-Control&amp;quot;,&amp;quot;no-cache&amp;quot;);
 Response.AppendHeader(&amp;quot;Pragma&amp;quot;,&amp;quot;no-cache&amp;quot;);
 Response.AppendHeader(&amp;quot;Content-Type&amp;quot;,&amp;quot;image/jpeg&amp;quot;);
 Response.Clear();

 string[] mCode = new string[4]{GetRandomChar(1),GetRandomChar(2),GetRandomChar(3),GetRandomChar(4)};
 PointF[] ps = new PointF[4]{new Point(5,2) , new Point(15,2) , new Point(25,2) , new Point(35,2)};
 Size offsetP = new Size(1,1);
 String sCode = String.Join(&amp;quot;&amp;quot;,mCode);
 Font ft = new Font(&amp;quot;Tahoma&amp;quot;,12,FontStyle.Regular,GraphicsUnit.Pixel);
 Session[&amp;quot;VerifyCode&amp;quot;] = sCode;
 
 
 
 Pen blackPen = new Pen(Color.FromArgb(151,151,188),1);

 using(Bitmap image = new Bitmap(55,20))
 {
  using(Graphics g = Graphics.FromImage(image))
  {
   g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias; 
   g.Clear(Color.FromArgb(214,242,253));
   g.DrawRectangle(blackPen,0,0,54,19);
   g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;  
   for(int i = 0; i &amp;lt; 4; i++)
   {
    g.DrawString(mCode[i].ToString(),ft,Brushes.Black,ps[i] + offsetP);
   } 
  }
  image.Save(Response.OutputStream,ImageFormat.Jpeg);
 }
 Response.End(); 
}
string GetRandomChar(int i)
{
 return rd.Next(0,10).ToString();
} 
&amp;lt;/SCRIPT&amp;gt;&lt;/pre&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-3107968651015171382&amp;page=RSS%3a+.NET%e7%9a%84%e9%aa%8c%e8%af%81%e7%a0%81&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=ioriwellings.spaces.live.com&amp;amp;GT1=ioriwellings"&gt;</description><comments>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!956.entry#comment</comments><guid isPermaLink="true">http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!956.entry</guid><pubDate>Fri, 28 Jul 2006 06:39:51 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://ioriwellings.spaces.live.com/blog/cns!D4DE46FA8730D2CA!956/comments/feed.rss</wfw:commentRss><wfw:comment>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!956.entry#comment</wfw:comment><dcterms:modified>2006-07-28T06:39:51Z</dcterms:modified></item><item><title>部属COM+组件服务</title><link>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!953.entry</link><description>&lt;div&gt;星期一 天气：多云&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;这些天 比较冷快了 就要快立秋了哦&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;天空中 总是飘着很多 的 白云 一朵 一朵的 很漂亮 想起来小的时候的样子&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;这几天 研究了一个 windows 组件服务 记录一下&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;还弄了一个 安装程序 Show 一下&lt;/div&gt;
&lt;div&gt;&lt;pre&gt;using System;
using System.Collections;
using System.ComponentModel;
using System.Configuration.Install;
using System.EnterpriseServices;


namespace DebugENS.Test
{
	/// 
	/// Installer 的摘要说明。
	/// 
	[RunInstaller(true)]
	public class Installer : System.Configuration.Install.Installer
	{
		/// 
		/// 必需的设计器变量。
		/// 
		private System.ComponentModel.Container components = null;

		public Installer()
		{
			// 该调用是设计器所必需的。
			InitializeComponent();

			// TODO: 在 InitializeComponent 调用后添加任何初始化
		}

		public override void Install(System.Collections.IDictionary stateSaver)
		{
			try 
			{
				string appID = null;
				string typeLib = null;
				// Get the location of the current assembly
				string assembly = GetType().Assembly.Location;
				// Install the application
				RegistrationHelper regHelper = new RegistrationHelper ();
				regHelper.InstallAssembly (assembly, ref appID, ref typeLib,
					InstallationFlags.FindOrCreateTargetApplication);
				// Save the state - you will need this for the uninstall
				stateSaver.Add (&amp;quot;AppID&amp;quot;, appID);
				stateSaver.Add (&amp;quot;Assembly&amp;quot;, assembly);
			}
			catch(Exception ex)
			{
//#if DEBUG
//				Debug.WriteLine (ex);
//#endif
//				StreamWriter writer = File.AppendText (&amp;quot;InstallError.log&amp;quot;);
//				writer.WriteLine (&amp;quot;Uninstall Error: {0}&amp;quot;, ex.Message);
				// If the installer catches the exception it will display 
				// an error message.  Show a friendly error message
				throw new ApplicationException
					(
					&amp;quot;Error installing the middle tier&amp;quot;, ex);
			}
		} 

	
		public override void Uninstall( System.Collections.IDictionary savedState)
		{
			try
			{
				// Get the state created when the app was installed
				string appID = (string)savedState[&amp;quot;AppID&amp;quot;];
				string assembly = (string)savedState[&amp;quot;Assembly&amp;quot;];
				// Uninstall the application
				RegistrationHelper regHelper = new RegistrationHelper ();
				regHelper.UninstallAssembly (assembly, appID);
			}
			catch ( Exception ex)
			{
				// Don't allow unhandled exceptions during uninstall
//#if DEBUG
//				Debug.WriteLine (ex);
//#endif
//				StreamWriter sw = File.AppendText (&amp;quot;InstallError.log&amp;quot;);
//				sw.WriteLine (&amp;quot;Uninstall Error: {0}&amp;quot;, ex.Message);
			}
		}

		public override void Rollback(System.Collections.IDictionary savedState)

		{
		try
	{
		// Get the state created when the app was installed
		string appID = (string)savedState[&amp;quot;AppID&amp;quot;];
		string assembly = (string)savedState[&amp;quot;Assembly&amp;quot;];
		// Uninstall the application
		RegistrationHelper regHelper = new RegistrationHelper ();
		regHelper.UninstallAssembly (assembly, appID);
	}
	catch ( Exception ex)
{
	// Don't allow unhandled exceptions during uninstall
	//#if DEBUG
	//				Debug.WriteLine (ex);
	//#endif
	//				StreamWriter sw = File.AppendText (&amp;quot;InstallError.log&amp;quot;);
	//				sw.WriteLine (&amp;quot;Uninstall Error: {0}&amp;quot;, ex.Message);
}


		}

      

		public override void Commit(System.Collections.IDictionary savedState)

		{

			base.Commit (savedState);

		}



		///  
		/// 清理所有正在使用的资源。
		/// 
		protected override void Dispose( bool disposing )
		{
			if( disposing )
			{
				if(components != null)
				{
					components.Dispose();
				}
			}
			base.Dispose( disposing );
		}


		#region 组件设计器生成的代码
		/// 
		/// 设计器支持所需的方法 - 不要使用代码编辑器修改
		/// 此方法的内容。
		/// 
		private void InitializeComponent()
		{
			components = new System.ComponentModel.Container();
		}
		#endregion
	}
}

&lt;/pre&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-3107968651015171382&amp;page=RSS%3a+%e9%83%a8%e5%b1%9eCOM%2b%e7%bb%84%e4%bb%b6%e6%9c%8d%e5%8a%a1&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=ioriwellings.spaces.live.com&amp;amp;GT1=ioriwellings"&gt;</description><comments>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!953.entry#comment</comments><guid isPermaLink="true">http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!953.entry</guid><pubDate>Mon, 24 Jul 2006 07:50:41 GMT</pubDate><slash:comments>1</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://ioriwellings.spaces.live.com/blog/cns!D4DE46FA8730D2CA!953/comments/feed.rss</wfw:commentRss><wfw:comment>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!953.entry#comment</wfw:comment><dcterms:modified>2006-07-24T07:50:41Z</dcterms:modified></item><item><title>FrameWork 1.1 in win2000 sp4</title><link>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!918.entry</link><description>&lt;div&gt;星期四 天气：有雨&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;外面刚刚下过雨&lt;/div&gt;
&lt;div&gt;终于 把 .Net 安装完了 原来2000安装包里的 有权限问题&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;删了 重装了一个 2003的 框架 好了 搞定&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;小燕 就在我身边 去睡觉吧 几天没睡好了&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-3107968651015171382&amp;page=RSS%3a+FrameWork+1.1+in+win2000+sp4&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=ioriwellings.spaces.live.com&amp;amp;GT1=ioriwellings"&gt;</description><comments>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!918.entry#comment</comments><guid isPermaLink="true">http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!918.entry</guid><pubDate>Thu, 29 Jun 2006 14:21:02 GMT</pubDate><slash:comments>1</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://ioriwellings.spaces.live.com/blog/cns!D4DE46FA8730D2CA!918/comments/feed.rss</wfw:commentRss><wfw:comment>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!918.entry#comment</wfw:comment><dcterms:modified>2006-06-29T14:21:02Z</dcterms:modified></item><item><title>支持断点 下载</title><link>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!805.entry</link><description>&lt;div&gt;&lt;pre&gt;using System;&lt;br&gt;using System.IO;&lt;br&gt;using System.Collections;&lt;br&gt;using System.ComponentModel;&lt;br&gt;using System.Data;&lt;br&gt;using System.Drawing;&lt;br&gt;using System.Web;&lt;br&gt;using System.Web.SessionState;&lt;br&gt;using System.Web.UI;&lt;br&gt;using System.Web.UI.WebControls;&lt;br&gt;using System.Web.UI.HtmlControls;&lt;/pre&gt;&lt;pre&gt;namespace DebugENS&lt;br&gt;{&lt;br&gt; /// &amp;lt;summary&amp;gt;&lt;br&gt; /// Test 的摘要说明。&lt;br&gt; /// &amp;lt;/summary&amp;gt;&lt;br&gt; public class Test : System.Web.UI.Page&lt;br&gt; {&lt;br&gt;  private String strFilePath = null;&lt;br&gt;  private int iBuffer = 1024;&lt;br&gt;  protected System.Web.UI.HtmlControls.HtmlInputFile file1;&lt;br&gt;  protected System.Web.UI.HtmlControls.HtmlForm form1;&lt;br&gt;  protected System.Web.UI.HtmlControls.HtmlInputButton Submit1;&lt;br&gt;  private byte[] bBuffer = null;&lt;/pre&gt;&lt;pre&gt;  private void Page_Load(object sender, System.EventArgs e)&lt;br&gt;  {&lt;br&gt;   // 在此处放置用户代码以初始化页面&lt;br&gt;   this.Response.Cache.SetNoStore();&lt;br&gt;   this.Response.Cache.SetNoServerCaching();&lt;br&gt;   this.Response.Cache.SetExpires(DateTime.Now.AddSeconds(0));&lt;br&gt;   &lt;br&gt;   if(this.Request.Params[&amp;quot;file&amp;quot;] == null){ return;}&lt;br&gt;   this.strFilePath = this.Request.MapPath(this.Request.Params[&amp;quot;file&amp;quot;]);&lt;/pre&gt;&lt;pre&gt;   if(System.IO.File.Exists(strFilePath))&lt;br&gt;   {&lt;br&gt;    FileStream fs  = File.OpenRead(strFilePath);&lt;br&gt;    &lt;br&gt;    bBuffer = new byte[iBuffer];&lt;br&gt;    int iReadCounter = 0;&lt;/pre&gt;&lt;pre&gt;    Response.Clear();&lt;br&gt;    Response.Buffer= true;&lt;br&gt;    Response.AddHeader(&amp;quot;Content-Type&amp;quot;,&amp;quot;application/octet-stream&amp;quot;);&lt;br&gt;    Response.AddHeader(&amp;quot;Content-Disposition&amp;quot;, &amp;quot;Attachment; Filename=&amp;quot;+this.Request.Params[&amp;quot;file&amp;quot;]);&lt;br&gt;    this.EnableViewState = false;&lt;/pre&gt;&lt;pre&gt;    long lFileLength = fs.Length;&lt;br&gt;    long lStartPoint = 0;&lt;/pre&gt;&lt;pre&gt;    String strRange = this.Request.Headers.Get(&amp;quot;Range&amp;quot;);&lt;/pre&gt;&lt;pre&gt;    if( strRange!=null &amp;amp;&amp;amp; !strRange.Equals(&amp;quot;&amp;quot;))&lt;br&gt;    {&lt;br&gt;     Response.StatusCode = 206;&lt;br&gt;     // Range: bytes=27534336-&lt;br&gt;     lStartPoint = Convert.ToInt64(this.Request.Headers.Get(&amp;quot;Range&amp;quot;).Replace(&amp;quot;bytes=&amp;quot;,&amp;quot;&amp;quot;).Replace(&amp;quot;-&amp;quot;,&amp;quot;&amp;quot;));&lt;br&gt;    }&lt;br&gt;    Response.AddHeader(&amp;quot;Content-Length&amp;quot;, (lFileLength - lStartPoint).ToString()); &lt;br&gt;    if(lStartPoint != 0)&lt;br&gt;    {&lt;br&gt;     //Content-Range: bytes [文件块的开始字节]-[文件的总大小 - 1]/[文件的总大小]&lt;br&gt;     Response.AddHeader(&amp;quot;Content-Range&amp;quot;,&amp;quot;bytes &amp;quot; + lStartPoint.ToString() + &amp;quot;-&amp;quot; + (lFileLength - 1).ToString() + &amp;quot;/&amp;quot; + lFileLength.ToString());&lt;br&gt;    }&lt;/pre&gt;&lt;pre&gt;&lt;br&gt;    this.Response.AddHeader(&amp;quot;Last-Modified&amp;quot;,File.GetLastWriteTimeUtc(strFilePath).ToString(&amp;quot;r&amp;quot;));&lt;br&gt;    this.Response.AddHeader(&amp;quot;ETag&amp;quot;,&amp;quot;abcsex&amp;quot;);&lt;/pre&gt;&lt;pre&gt;    while ((iReadCounter = fs.Read(bBuffer,0,bBuffer.Length)) &amp;gt; 0)&lt;br&gt;    {&lt;br&gt;     if(this.Response.IsClientConnected)&lt;br&gt;      this.Response.OutputStream.Write(bBuffer,0,iReadCounter);&lt;br&gt;     else break;&lt;br&gt;    }&lt;br&gt;    fs.Flush();&lt;br&gt;    fs.Close();&lt;/pre&gt;&lt;pre&gt;    this.Response.OutputStream.Flush();&lt;br&gt;    this.Response.OutputStream.Close();&lt;br&gt;   &lt;br&gt;    #endregion      &lt;br&gt; &lt;br&gt;   }&lt;br&gt;  }&lt;/pre&gt;&lt;pre&gt;  override protected void OnInit(EventArgs e)&lt;br&gt;  {&lt;/pre&gt;&lt;pre&gt;   InitializeComponent();&lt;br&gt;   base.OnInit(e);&lt;br&gt;  }&lt;br&gt;  &lt;/pre&gt;&lt;pre&gt;  private void InitializeComponent()&lt;br&gt;  {    &lt;br&gt;   this.Load += new System.EventHandler(this.Page_Load);&lt;/pre&gt;&lt;pre&gt;  }&lt;/pre&gt;&lt;pre&gt; }&lt;br&gt;}&lt;br&gt;&lt;/pre&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-3107968651015171382&amp;page=RSS%3a+%e6%94%af%e6%8c%81%e6%96%ad%e7%82%b9+%e4%b8%8b%e8%bd%bd&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=ioriwellings.spaces.live.com&amp;amp;GT1=ioriwellings"&gt;</description><comments>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!805.entry#comment</comments><guid isPermaLink="true">http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!805.entry</guid><pubDate>Mon, 10 Apr 2006 06:24:58 GMT</pubDate><slash:comments>2</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://ioriwellings.spaces.live.com/blog/cns!D4DE46FA8730D2CA!805/comments/feed.rss</wfw:commentRss><wfw:comment>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!805.entry#comment</wfw:comment><dcterms:modified>2006-04-10T06:24:58Z</dcterms:modified></item><item><title>[进度条]组件</title><link>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!798.entry</link><description>等待提交 组件 呵 还得看我的脚本的历害. &lt;pre&gt;using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
using System.Xml;
using System.Xml.Xsl;
using System.Xml.XPath;

/**
     * 文件名称：  CWait.cs
     * 描　 述 ：  进度条控件
     * 版   权 ：
     * 公   司 ： 东宇软件有限公司
     * 作   者 ： 杨林
     * 日　 期 ： 2006－03－30
     * 版   本 ： 1.0
     * 文件修改日志:
     *  1. 日期：
     *     修 改 人：
     *     修改内容：
     *     版    本：
*/

namespace dysoft.Web.SubmitProgress
{
 /// 
 /// 进度条控件,东宇软件-技术组。
 /// 
 [DefaultProperty(&amp;quot;ControlID&amp;quot;), 
  ToolboxData(&amp;quot;&amp;lt;{0}:CWait runat=server&amp;gt;&amp;quot;),Designer(&amp;quot;dysoft.Web.SubmitProgress.CWaitDesigner&amp;quot;)]
 public class CWait : System.Web.UI.WebControls.WebControl
 {
  private String strControlID;
  private String strMessageText;
  private String strTemplateUrl;

  /// 
  /// 构造函数
  /// 
  public CWait()
  {
   this.strMessageText = &amp;quot;正在发送数据,请等待...&amp;quot;;
   this.strTemplateUrl = &amp;quot;/js/ProcessStyle.xml&amp;quot;;
  }

  /// 
  /// 需要弹出进度条的按钮ID
  /// 
  [Description(&amp;quot;指定按钮的ID,指定按钮将有进度条.&amp;quot;)]
  public String ControlID
  {
   get
   {
    return this.strControlID;
   }
   set
   {
    this.strControlID = value;
   }
  }

  /// 
  /// 进度条的提示信息.
  /// 
  [Description(&amp;quot;进度条的提示信息.&amp;quot;)]
  public String MessageText
  {
   get
   {
    return this.strMessageText.Replace(&amp;quot;\&amp;quot;&amp;quot;,&amp;quot;&amp;quot;).Replace(&amp;quot;'&amp;quot;,&amp;quot;&amp;quot;);;
   }
   set
   {
    this.strMessageText = value;
   }
  }

  /// 
  /// 指定进度条样式模板URL.
  /// 
  [Description(&amp;quot;指定进度条样式模板URL.&amp;quot;)]
  public String TemplateUrl
  {
   get
   {
    return this.strTemplateUrl;
   }
   set
   {
    this.strTemplateUrl = value;
   }
  }

  ///  
  /// 将此控件呈现给指定的输出参数。
  /// 
  ///  要写出到的 HTML 编写器 
  protected override void Render(HtmlTextWriter output)
  {
   //output.Write(this.strMessageText);
  }

  protected override void OnPreRender(EventArgs e)
  {
   base.OnPreRender (e);
   if(this.ControlID == null)
   {
    return;
   }
   //String strScript = &amp;quot;&amp;quot;;
   if(this.strTemplateUrl.Trim().Equals(&amp;quot;&amp;quot;))
   {
    this.strTemplateUrl = &amp;quot;/js/ProcessStyle.xml&amp;quot;;
   }
   String strFilename = this.TemplateUrl;
   String strStylesheet = &amp;quot;/js/ProcessStatus.xslt&amp;quot;;

   String strXmlPath = System.Web.HttpContext.Current.Request.MapPath(strFilename);
   String strXSLTPath = System.Web.HttpContext.Current.Request.MapPath(strStylesheet);

   if(!System.IO.File.Exists(strXmlPath) || !System.IO.File.Exists(strXSLTPath))
   {
    System.Web.HttpContext.Current.Response.ClearContent();
    System.Web.HttpContext.Current.Response.Write(&amp;quot;请确认文件&amp;quot;+strXmlPath+&amp;quot;和&amp;quot;+strXSLTPath+&amp;quot;\&amp;quot;存在!&amp;quot;);
    return;
   }

   XslTransform oXslt = new XslTransform();
   oXslt.Load(strXSLTPath);
   XPathDocument oXpathDocument = new XPathDocument(strXmlPath);
   System.Text.StringBuilder oSBuder = new System.Text.StringBuilder();
   System.IO.StringWriter oSW = new System.IO.StringWriter(oSBuder);
   oXslt.Transform(oXpathDocument,null,oSW,new XmlUrlResolver());
   String strScript = oSBuder.ToString();
   oSW.Close();

   this.Page.RegisterClientScriptBlock(&amp;quot;waitScript&amp;quot;,strScript);
   this.Page.RegisterOnSubmitStatement(&amp;quot;wait&amp;quot;,&amp;quot;wait();&amp;quot;);
   this.Page.RegisterClientScriptBlock(this.ClientID,&amp;quot;&amp;quot;);
   this.Page.RegisterStartupScript(this.ControlID,&amp;quot;&amp;quot;);
   
  }
 }
}



using System;
using System.Web.UI.Design.WebControls;

/**
     * 文件名称：  CWaitDesigner.cs
     * 描　 述 ：  设计时类
     * 版   权 ：
     * 公   司 ： 东宇软件有限公司
     * 作   者 ： 杨林
     * 日　 期 ： 2006－03－30
     * 版   本 ： 1.0
     * 文件修改日志:
     *  1. 日期：
     *     修 改 人：
     *     修改内容：
     *     版    本：
*/

namespace dysoft.Web.SubmitProgress
{
 public class CWaitDesigner : System.Web.UI.Design.ControlDesigner
 {
  public CWaitDesigner()
  {
   
  }

  public override string GetDesignTimeHtml()
  {
   //return base.GetDesignTimeHtml ();
   System.IO.StringWriter sw = new System.IO.StringWriter();
   System.Web.UI.HtmlTextWriter tw = new System.Web.UI.HtmlTextWriter(sw);
   System.Web.UI.WebControls.HyperLink hl = new System.Web.UI.WebControls.HyperLink();
   hl.NavigateUrl = &amp;quot;http://ens.dongyu.com.cn/&amp;quot;;
   hl.Text = &amp;quot;[进度条]&amp;quot;;
   hl.RenderControl(tw);

   //System.Web.UI.WebControls.Label lb = new System.Web.UI.WebControls.Label();
   //lb.Text =&amp;quot; &lt;u&gt;技术组设计&lt;/u&gt;  &amp;quot;;
   //lb.RenderControl(tw);

   return sw.ToString();
  }

 }
}

ProcessStatus.xslt&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;gb2312&amp;quot; ?&amp;gt;&lt;br&gt;&amp;lt;?xml:namespace prefix = xsl /&amp;gt;&amp;lt;xsl:stylesheet xmlns:xsl=&amp;quot;&lt;a href="http://www.w3.org/1999/XSL/Transform"&gt;http://www.w3.org/1999/XSL/Transform&lt;/a&gt;&amp;quot; version=&amp;quot;1.0&amp;quot;&amp;gt;&lt;br&gt; &amp;lt;xsl:output method=&amp;quot;html&amp;quot;&amp;gt;&amp;lt;/xsl:output&amp;gt;&lt;br&gt; &amp;lt;xsl:template match=&amp;quot;/Style&amp;quot;&amp;gt;&lt;br&gt;  &amp;lt;SCRIPT language=javascript&amp;gt;&lt;br&gt;   &amp;lt;xsl:value-of select=&amp;quot;document('')/*/node()[@name='script_Onload']/node()&amp;quot; disable-output-escaping=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br&gt;   &amp;lt;xsl:value-of select=&amp;quot;document('')/*/node()[@name='script_befor']/node()&amp;quot; disable-output-escaping=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br&gt;     strTable += '&amp;lt;xsl:value-of select=&amp;quot;translate(.,'&amp;amp;#10;&amp;amp;#13;&amp;amp;#09;','')&amp;quot; disable-output-escaping=&amp;quot;yes&amp;quot;/&amp;gt;';&lt;br&gt;   &amp;lt;xsl:value-of select=&amp;quot;document('')/*/node()[@name='script_after']/node()&amp;quot; disable-output-escaping=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br&gt;  &amp;lt;/SCRIPT&amp;gt;&lt;br&gt; &amp;lt;/xsl:template&amp;gt;&lt;br&gt; &lt;br&gt; &amp;lt;xsl:template name=&amp;quot;script_Onload&amp;quot;&amp;gt;&lt;br&gt;  &lt;br&gt; &amp;lt;/xsl:template&amp;gt;&lt;br&gt; &lt;br&gt; &amp;lt;xsl:template name=&amp;quot;script_befor&amp;quot;&amp;gt;&lt;br&gt;  &amp;lt;![CDATA[&lt;br&gt;   function wait(){&lt;br&gt;    if(!window.event) return;&lt;br&gt;    if(currentButton != null){&lt;br&gt;     var bFind = false;&lt;br&gt;     for(var i=0;i&amp;lt;validsBtnButton.length;i++){&lt;br&gt;      if(validsBtnButton[i]==currentButton){&lt;br&gt;       bFind = true;&lt;br&gt;       break;&lt;br&gt;      }&lt;br&gt;     }&lt;br&gt;     if(bFind == false){&lt;br&gt;      return;&lt;br&gt;     }&lt;br&gt;    }&lt;br&gt;    else{&lt;br&gt;     return ;&lt;br&gt;    }&lt;br&gt;    if(typeof(window.event.returnValue) != &amp;quot;undefinded&amp;quot; &amp;amp;&amp;amp; window.event.returnValue == false){&lt;br&gt;     return;&lt;br&gt;    }&lt;br&gt;    if(window.event.srcElement.tagName.toLowerCase() == &amp;quot;form&amp;quot;){&lt;br&gt;     var strTable = &amp;quot;&amp;quot;;&lt;br&gt;     strTable += '&amp;lt;table width=&amp;quot;100%&amp;quot; height=&amp;quot;100%&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td align=&amp;quot;center&amp;quot;&amp;gt;';   &lt;br&gt;  ]]&amp;gt;&lt;br&gt; &amp;lt;/xsl:template&amp;gt; &lt;br&gt; &lt;br&gt; &amp;lt;xsl:template name=&amp;quot;script_after&amp;quot;&amp;gt;&lt;br&gt;  &amp;lt;![CDATA[&lt;br&gt;     strTable += '&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;';&lt;br&gt;     &lt;br&gt;     var oDiv = document.getElementById(&amp;quot;oWaitDiv&amp;quot;);&lt;br&gt;     oDiv.innerHTML = strTable;&lt;br&gt;     ReDrawTable();&lt;br&gt;     if(document.getElementById(&amp;quot;oMessage&amp;quot;) == null){&lt;br&gt;      alert(&amp;quot;样式模板格式不正确!&amp;quot;);&lt;br&gt;      return;&lt;br&gt;     }&lt;br&gt;     if(currentMessage == &amp;quot;&amp;quot;){&lt;br&gt;      document.getElementById(&amp;quot;oMessage&amp;quot;).innerHTML = &amp;quot;正在发送数据，请稍候...&amp;quot;;&lt;br&gt;     }else{&lt;br&gt;      document.getElementById(&amp;quot;oMessage&amp;quot;).innerHTML = currentMessage;&lt;br&gt;     }&lt;br&gt;     oDiv.style.display = &amp;quot;&amp;quot;;&lt;br&gt;     &lt;br&gt;     /*&lt;br&gt;     window.attachEvent(&amp;quot;onscroll&amp;quot;,function(){&lt;br&gt;      ReDrawTable()&lt;br&gt;     });&lt;br&gt;     window.attachEvent(&amp;quot;onresize&amp;quot;,function(){&lt;br&gt;      ReDrawTable()&lt;br&gt;     });&lt;br&gt;     */&lt;br&gt;     &lt;br&gt;     try{&lt;br&gt;      window.event.srcElement.blur();&lt;br&gt;      document.activeElement.blur();&lt;br&gt;     }catch(e){&lt;br&gt;     }&lt;br&gt;    }&lt;br&gt;   }&lt;br&gt;   &lt;br&gt;   function ReDrawTable(){&lt;br&gt;    var oTable = document.getElementById(&amp;quot;oStyleTable&amp;quot;);&lt;br&gt;    oTable.style.position = &amp;quot;absolute&amp;quot;;&lt;br&gt;    oTable.style.setExpression(&amp;quot;top&amp;quot;,&amp;quot;eval((document.body.clientHeight-document.getElementById('oStyleTable').offsetHeight)/2+document.body.scrollTop)&amp;quot;);&lt;br&gt;    oTable.style.setExpression(&amp;quot;left&amp;quot;,&amp;quot;eval((document.body.clientWidth-document.getElementById('oStyleTable').offsetWidth)/2+document.body.scrollLeft)&amp;quot;);  &lt;br&gt;   }&lt;br&gt;  ]]&amp;gt;&lt;br&gt; &amp;lt;/xsl:template&amp;gt;&lt;br&gt;&amp;lt;/xsl:stylesheet&amp;gt;

ProcessStyle.xml&lt;br&gt;  
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;GB2312&amp;quot; ?&amp;gt; &lt;br&gt;&amp;lt;STYLE&amp;gt;&lt;br&gt; &amp;lt;![CDATA[&lt;br&gt;  &amp;lt;table cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;1&amp;quot; width=&amp;quot;268&amp;quot; height=&amp;quot;134&amp;quot; bgcolor=&amp;quot;white&amp;quot; style=&amp;quot;border:1px solid #808080&amp;quot;&amp;gt;&lt;br&gt;   &amp;lt;tr&amp;gt;&lt;br&gt;    &amp;lt;td bgcolor=&amp;quot;#316db2&amp;quot; height=7&amp;gt;&amp;lt;/td&amp;gt;&lt;br&gt;   &amp;lt;/tr&amp;gt;&lt;br&gt;   &amp;lt;tr&amp;gt;&lt;br&gt;    &amp;lt;td style=&amp;quot;font-size:14px;color:#316db2;font-weight:bold;&amp;quot; align=center&amp;gt;&amp;lt;/td&amp;gt;&lt;br&gt;   &amp;lt;/tr&amp;gt;&lt;br&gt;  &amp;lt;/table&amp;gt;&lt;br&gt; ]]&amp;gt;&lt;br&gt;&amp;lt;/STYLE&amp;gt;&lt;br&gt;&lt;/pre&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-3107968651015171382&amp;page=RSS%3a+%5b%e8%bf%9b%e5%ba%a6%e6%9d%a1%5d%e7%bb%84%e4%bb%b6&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=ioriwellings.spaces.live.com&amp;amp;GT1=ioriwellings"&gt;</description><comments>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!798.entry#comment</comments><guid isPermaLink="true">http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!798.entry</guid><pubDate>Wed, 05 Apr 2006 06:49:37 GMT</pubDate><slash:comments>3</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://ioriwellings.spaces.live.com/blog/cns!D4DE46FA8730D2CA!798/comments/feed.rss</wfw:commentRss><wfw:comment>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!798.entry#comment</wfw:comment><dcterms:modified>2006-04-05T06:49:37Z</dcterms:modified></item><item><title>改变IIS根目录</title><link>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!756.entry</link><description>&lt;div&gt;由于 多个web 项目都需要在根目录下工作&lt;/div&gt;
&lt;div&gt;频烦打开iis控制台 很费时 费力&lt;/div&gt;
&lt;div&gt;那么 这个程序 可以很方便的 完成这项任务&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;主窗代码:&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;&lt;pre&gt;&lt;div&gt;using System;&lt;br&gt;using System.Drawing;&lt;br&gt;using System.Collections;&lt;br&gt;using System.ComponentModel;&lt;br&gt;using System.Windows.Forms;&lt;br&gt;using System.Data;&lt;/div&gt;
&lt;div&gt;namespace IIsControls&lt;br&gt;{&lt;br&gt; /// &amp;lt;summary&amp;gt;&lt;br&gt; /// Form1 的摘要说明。&lt;br&gt; /// &amp;lt;/summary&amp;gt;&lt;br&gt; public class IIsWinForm : System.Windows.Forms.Form&lt;br&gt; {&lt;br&gt;  private System.Windows.Forms.Button btnOK;&lt;br&gt;  private System.Windows.Forms.Button btnClose;&lt;br&gt;  private System.Windows.Forms.GroupBox gpControls;&lt;br&gt;  private System.Windows.Forms.TextBox lbWebPath;&lt;br&gt;  private System.Windows.Forms.TreeView tvWebSites;&lt;br&gt;  private System.ComponentModel.IContainer components;&lt;br&gt;  private IIsWebSiteCollection webSites;&lt;br&gt;  private System.Windows.Forms.ImageList imageList1;&lt;br&gt;  private System.Windows.Forms.Label label1;&lt;br&gt;  private TreeNode focusNode;&lt;br&gt;  public IIsWinForm()&lt;br&gt;  {&lt;br&gt;   //&lt;br&gt;   // Windows 窗体设计器支持所必需的&lt;br&gt;   //&lt;br&gt;   InitializeComponent();&lt;/div&gt;
&lt;div&gt;   //&lt;br&gt;   // TODO: 在 InitializeComponent 调用后添加任何构造函数代码&lt;br&gt;   //&lt;br&gt;   InitializeWebSiteTree();&lt;br&gt;  }&lt;/div&gt;
&lt;div&gt;&lt;br&gt;  public void InitializeWebSiteTree()&lt;br&gt;  {&lt;br&gt;   TreeNode host = new TreeNode(&amp;quot;IIS://127.0.0.1&amp;quot;);&lt;br&gt;   host.ImageIndex = host.SelectedImageIndex = 0;&lt;br&gt;   this.tvWebSites.Nodes.Add(host);&lt;br&gt;   webSites = IIsControler.GetWebSites();&lt;/div&gt;
&lt;div&gt;   foreach(IIsWebSite webSite in webSites)&lt;br&gt;   {&lt;br&gt;    TreeNode webSiteNode = new TreeNode(webSite.WebName);&lt;br&gt;    webSiteNode.SelectedImageIndex = 1;&lt;br&gt;    webSiteNode.ImageIndex = 1;&lt;br&gt;    webSiteNode.Tag = webSite;&lt;/div&gt;
&lt;div&gt;    host.Nodes.Add(webSiteNode);&lt;br&gt;   }&lt;/div&gt;
&lt;div&gt;   if(host.Nodes.Count &amp;gt; 0)&lt;br&gt;   {&lt;br&gt;    host.Expand();&lt;br&gt;   }&lt;br&gt;  }&lt;/div&gt;
&lt;div&gt;  /// &amp;lt;summary&amp;gt;&lt;br&gt;  /// 清理所有正在使用的资源。&lt;br&gt;  /// &amp;lt;/summary&amp;gt;&lt;br&gt;  protected override void Dispose( bool disposing )&lt;br&gt;  {&lt;br&gt;   if( disposing )&lt;br&gt;   {&lt;br&gt;    if (components != null) &lt;br&gt;    {&lt;br&gt;     components.Dispose();&lt;br&gt;    }&lt;br&gt;   }&lt;br&gt;   base.Dispose( disposing );&lt;br&gt;   webSites.DisposeAll();&lt;br&gt;   this.imageList1.Dispose();&lt;br&gt;  }&lt;/div&gt;
&lt;div&gt;  #region Windows 窗体设计器生成的代码&lt;br&gt;  /// &amp;lt;summary&amp;gt;&lt;br&gt;  /// 设计器支持所需的方法 - 不要使用代码编辑器修改&lt;br&gt;  /// 此方法的内容。&lt;br&gt;  /// &amp;lt;/summary&amp;gt;&lt;br&gt;  private void InitializeComponent()&lt;br&gt;  {&lt;br&gt;   this.components = new System.ComponentModel.Container();&lt;br&gt;   System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(IIsWinForm));&lt;br&gt;   this.tvWebSites = new System.Windows.Forms.TreeView();&lt;br&gt;   this.btnOK = new System.Windows.Forms.Button();&lt;br&gt;   this.btnClose = new System.Windows.Forms.Button();&lt;br&gt;   this.gpControls = new System.Windows.Forms.GroupBox();&lt;br&gt;   this.lbWebPath = new System.Windows.Forms.TextBox();&lt;br&gt;   this.imageList1 = new System.Windows.Forms.ImageList(this.components);&lt;br&gt;   this.label1 = new System.Windows.Forms.Label();&lt;br&gt;   this.gpControls.SuspendLayout();&lt;br&gt;   this.SuspendLayout();&lt;br&gt;   // &lt;br&gt;   // tvWebSites&lt;br&gt;   // &lt;br&gt;   this.tvWebSites.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;&lt;br&gt;   this.tvWebSites.ImageList = this.imageList1;&lt;br&gt;   this.tvWebSites.Location = new System.Drawing.Point(10, 8);&lt;br&gt;   this.tvWebSites.Name = &amp;quot;tvWebSites&amp;quot;;&lt;br&gt;   this.tvWebSites.Size = new System.Drawing.Size(274, 128);&lt;br&gt;   this.tvWebSites.TabIndex = 0;&lt;br&gt;   this.tvWebSites.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.tvWebSites_AfterSelect);&lt;br&gt;   // &lt;br&gt;   // btnOK&lt;br&gt;   // &lt;br&gt;   this.btnOK.Enabled = false;&lt;br&gt;   this.btnOK.FlatStyle = System.Windows.Forms.FlatStyle.Flat;&lt;br&gt;   this.btnOK.Location = new System.Drawing.Point(143, 64);&lt;br&gt;   this.btnOK.Name = &amp;quot;btnOK&amp;quot;;&lt;br&gt;   this.btnOK.Size = new System.Drawing.Size(56, 23);&lt;br&gt;   this.btnOK.TabIndex = 1;&lt;br&gt;   this.btnOK.Text = &amp;quot;Change&amp;quot;;&lt;br&gt;   this.btnOK.Click += new System.EventHandler(this.btnOK_Click);&lt;br&gt;   // &lt;br&gt;   // btnClose&lt;br&gt;   // &lt;br&gt;   this.btnClose.FlatStyle = System.Windows.Forms.FlatStyle.Flat;&lt;br&gt;   this.btnClose.Location = new System.Drawing.Point(212, 64);&lt;br&gt;   this.btnClose.Name = &amp;quot;btnClose&amp;quot;;&lt;br&gt;   this.btnClose.Size = new System.Drawing.Size(56, 23);&lt;br&gt;   this.btnClose.TabIndex = 2;&lt;br&gt;   this.btnClose.Text = &amp;quot;Close&amp;quot;;&lt;br&gt;   this.btnClose.Click += new System.EventHandler(this.btnClose_Click);&lt;br&gt;   // &lt;br&gt;   // gpControls&lt;br&gt;   // &lt;br&gt;   this.gpControls.Controls.Add(this.label1);&lt;br&gt;   this.gpControls.Controls.Add(this.lbWebPath);&lt;br&gt;   this.gpControls.Controls.Add(this.btnClose);&lt;br&gt;   this.gpControls.Controls.Add(this.btnOK);&lt;br&gt;   this.gpControls.Location = new System.Drawing.Point(7, 152);&lt;br&gt;   this.gpControls.Name = &amp;quot;gpControls&amp;quot;;&lt;br&gt;   this.gpControls.Size = new System.Drawing.Size(279, 104);&lt;br&gt;   this.gpControls.TabIndex = 3;&lt;br&gt;   this.gpControls.TabStop = false;&lt;br&gt;   this.gpControls.Text = &amp;quot;IIsControl&amp;quot;;&lt;br&gt;   // &lt;br&gt;   // lbWebPath&lt;br&gt;   // &lt;br&gt;   this.lbWebPath.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;&lt;br&gt;   this.lbWebPath.Location = new System.Drawing.Point(44, 24);&lt;br&gt;   this.lbWebPath.Name = &amp;quot;lbWebPath&amp;quot;;&lt;br&gt;   this.lbWebPath.Size = new System.Drawing.Size(222, 20);&lt;br&gt;   this.lbWebPath.TabIndex = 3;&lt;br&gt;   this.lbWebPath.Text = &amp;quot;&amp;quot;;&lt;br&gt;   // &lt;br&gt;   // imageList1&lt;br&gt;   // &lt;br&gt;   this.imageList1.ImageSize = new System.Drawing.Size(16, 16);&lt;br&gt;   this.imageList1.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject(&amp;quot;imageList1.ImageStream&amp;quot;)));&lt;br&gt;   this.imageList1.TransparentColor = System.Drawing.Color.Transparent;&lt;br&gt;   // &lt;br&gt;   // label1&lt;br&gt;   // &lt;br&gt;   this.label1.Location = new System.Drawing.Point(9, 24);&lt;br&gt;   this.label1.Name = &amp;quot;label1&amp;quot;;&lt;br&gt;   this.label1.Size = new System.Drawing.Size(30, 16);&lt;br&gt;   this.label1.TabIndex = 4;&lt;br&gt;   this.label1.Text = &amp;quot;path&amp;quot;;&lt;br&gt;   // &lt;br&gt;   // IIsWinForm&lt;br&gt;   // &lt;br&gt;   this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);&lt;br&gt;   this.ClientSize = new System.Drawing.Size(292, 267);&lt;br&gt;   this.Controls.Add(this.gpControls);&lt;br&gt;   this.Controls.Add(this.tvWebSites);&lt;br&gt;   this.Name = &amp;quot;IIsWinForm&amp;quot;;&lt;br&gt;   this.Text = &amp;quot;IIsControls&amp;quot;;&lt;br&gt;   this.gpControls.ResumeLayout(false);&lt;br&gt;   this.ResumeLayout(false);&lt;/div&gt;
&lt;div&gt;  }&lt;br&gt;  #endregion&lt;/div&gt;
&lt;div&gt;  /// &amp;lt;summary&amp;gt;&lt;br&gt;  /// 应用程序的主入口点。&lt;br&gt;  /// &amp;lt;/summary&amp;gt;&lt;br&gt;  [STAThread]&lt;br&gt;  static void Main() &lt;br&gt;  {&lt;br&gt;   Application.Run(new IIsWinForm());&lt;br&gt;  }&lt;/div&gt;
&lt;div&gt;  private void tvWebSites_AfterSelect(object sender, System.Windows.Forms.TreeViewEventArgs e)&lt;br&gt;  {&lt;br&gt;   if(e.Node.Tag != null)&lt;br&gt;   {&lt;br&gt;    focusNode = e.Node;&lt;br&gt;    IIsWebSite webSite = (IIsWebSite)e.Node.Tag;&lt;br&gt;    this.lbWebPath.Text = webSite.GetWebPath();&lt;br&gt;    this.btnOK.Enabled = true;&lt;br&gt;   }&lt;br&gt;   else&lt;br&gt;   {&lt;br&gt;    this.btnOK.Enabled = false;&lt;br&gt;    this.lbWebPath.Text = e.Node.Text;&lt;br&gt;   }&lt;br&gt;  }&lt;/div&gt;
&lt;div&gt;  private void btnClose_Click(object sender, System.EventArgs e)&lt;br&gt;  {&lt;br&gt;   this.Close();&lt;br&gt;  }&lt;/div&gt;
&lt;div&gt;  private void btnOK_Click(object sender, System.EventArgs e)&lt;br&gt;  {&lt;br&gt;   if(focusNode != null)&lt;br&gt;   {&lt;br&gt;    IIsWebSite currWebSite = (IIsWebSite)focusNode.Tag;&lt;br&gt;    if(string.Compare(currWebSite.GetWebPath(), this.lbWebPath.Text) != 0)&lt;br&gt;    {&lt;br&gt;     try&lt;br&gt;     {&lt;br&gt;      currWebSite.SetWebPath(this.lbWebPath.Text);&lt;br&gt;      MessageBox.Show(&amp;quot;操作完毕&amp;quot;);&lt;br&gt;     }&lt;br&gt;     catch(Exception ex)&lt;br&gt;     {&lt;br&gt;      MessageBox.Show(ex.Message);&lt;br&gt;     }&lt;br&gt;    }&lt;br&gt;    else&lt;br&gt;    {&lt;br&gt;     MessageBox.Show(&amp;quot;路径没有改变，操作完毕&amp;quot;);&lt;br&gt;    }&lt;br&gt;   }&lt;br&gt;  }&lt;br&gt; }&lt;br&gt;}&lt;br&gt;&lt;/div&gt;
&lt;div&gt;辅助类 代码:&lt;/div&gt;
&lt;div&gt;using System;&lt;br&gt;using System.Collections;&lt;br&gt;using System.DirectoryServices;&lt;br&gt;namespace IIsControls&lt;br&gt;{&lt;br&gt; /// &amp;lt;summary&amp;gt;&lt;br&gt; /// IIsControler 的摘要说明。&lt;br&gt; /// &amp;lt;/summary&amp;gt;&lt;br&gt; public class IIsControler&lt;br&gt; {&lt;br&gt;  static readonly string IIS_ROOT;&lt;/div&gt;
&lt;div&gt;  static IIsControler()&lt;br&gt;  {&lt;br&gt;   IIS_ROOT = &amp;quot;IIS://127.0.0.1/W3SVC&amp;quot;;&lt;br&gt;  }&lt;/div&gt;
&lt;div&gt;  public static IIsWebSiteCollection GetWebSites()&lt;br&gt;  {&lt;br&gt;   IIsWebSiteCollection sites = new IIsWebSiteCollection();&lt;/div&gt;
&lt;div&gt;   DirectoryEntry iis = new DirectoryEntry(IIS_ROOT);&lt;/div&gt;
&lt;div&gt;   foreach(DirectoryEntry site in iis.Children)&lt;br&gt;   {&lt;br&gt;    if(string.Compare(site.SchemaClassName, &amp;quot;IIsWebServer&amp;quot;, true) == 0)&lt;br&gt;    {&lt;br&gt;     IIsWebSite webSite = new IIsWebSite(site.Path);&lt;br&gt;     sites.Add(webSite);&lt;br&gt;    }&lt;br&gt;   }&lt;/div&gt;
&lt;div&gt;   return sites;&lt;br&gt;  }&lt;br&gt; }&lt;/div&gt;
&lt;div&gt; public class IIsWebSite : IDisposable&lt;br&gt; {&lt;br&gt;  string m_uri;&lt;br&gt;  string m_webName;&lt;br&gt;  string m_path;&lt;br&gt;  DirectoryEntry m_webSite;&lt;br&gt;  DirectoryEntry m_webRoot;&lt;/div&gt;
&lt;div&gt;  public IIsWebSite(string IIsURI)&lt;br&gt;  {&lt;br&gt;   m_uri = IIsURI;&lt;br&gt;   m_webSite = new DirectoryEntry(IIsURI);&lt;br&gt;   m_webName = m_webSite.Invoke(&amp;quot;Get&amp;quot;, &amp;quot;ServerComment&amp;quot;).ToString();&lt;br&gt;   m_webRoot = new DirectoryEntry(m_webSite.Path + &amp;quot;/ROOT&amp;quot;);&lt;br&gt;  }&lt;/div&gt;
&lt;div&gt;  public string GetWebPath()&lt;br&gt;  {&lt;br&gt;   //得到跟木录的物理地址&lt;br&gt;   if(this.m_path == null)&lt;br&gt;   {&lt;br&gt;    return this.m_path = m_webRoot.Properties[&amp;quot;Path&amp;quot;][0].ToString();&lt;br&gt;   }&lt;br&gt;   else&lt;br&gt;   {&lt;br&gt;    return this.m_path;&lt;br&gt;   }&lt;br&gt;  }&lt;/div&gt;
&lt;div&gt;  public void SetWebPath(string newPath)&lt;br&gt;  {&lt;br&gt;   if(System.IO.Directory.Exists(newPath))&lt;br&gt;   {&lt;br&gt;    this.m_webRoot.Properties[&amp;quot;Path&amp;quot;][0] = newPath;&lt;br&gt;    this.m_webRoot.CommitChanges();&lt;br&gt;    this.m_webSite.CommitChanges();&lt;br&gt;    this.m_path = null;&lt;br&gt;   }&lt;br&gt;   else&lt;br&gt;   {&lt;br&gt;    throw new System.IO.DirectoryNotFoundException(&amp;quot;目录不存在。&amp;quot;);&lt;br&gt;   }&lt;br&gt;  }&lt;/div&gt;
&lt;div&gt;  public string WebName&lt;br&gt;  {&lt;br&gt;   get&lt;br&gt;   {&lt;br&gt;    return this.m_webName;&lt;br&gt;   }&lt;br&gt;  }&lt;br&gt;  #region IDisposable 成员&lt;/div&gt;
&lt;div&gt;  public void Dispose()&lt;br&gt;  {&lt;br&gt;   // TODO:  添加 IIsWebSite.Dispose 实现&lt;br&gt;   this.m_webRoot.Dispose();&lt;br&gt;   this.m_webSite.Dispose();&lt;br&gt;  }&lt;/div&gt;
&lt;div&gt;  #endregion&lt;br&gt; }&lt;/div&gt;
&lt;div&gt; public class IIsWebSiteCollection : ArrayList&lt;br&gt; {&lt;br&gt;  public IIsWebSiteCollection() : base()&lt;br&gt;  {&lt;br&gt;  }&lt;/div&gt;
&lt;div&gt;  public new IIsWebSite this[int i]&lt;br&gt;  {&lt;br&gt;   get&lt;br&gt;   {&lt;br&gt;    return (IIsWebSite)base[i];&lt;br&gt;   }&lt;br&gt;  }&lt;/div&gt;
&lt;div&gt;  public void Add(IIsWebSite webSite)&lt;br&gt;  {&lt;br&gt;   base.Add(webSite);&lt;br&gt;  }&lt;/div&gt;
&lt;div&gt;  public void DisposeAll()&lt;br&gt;  {&lt;br&gt;   for(int i = 0; i &amp;lt; this.Count; i++)&lt;br&gt;   {&lt;br&gt;    this[i].Dispose();&lt;br&gt;   }&lt;br&gt;  }&lt;br&gt; }&lt;br&gt;}&lt;br&gt;&lt;/div&gt;
&lt;/pre&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-3107968651015171382&amp;page=RSS%3a+%e6%94%b9%e5%8f%98IIS%e6%a0%b9%e7%9b%ae%e5%bd%95&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=ioriwellings.spaces.live.com&amp;amp;GT1=ioriwellings"&gt;</description><comments>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!756.entry#comment</comments><guid isPermaLink="true">http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!756.entry</guid><pubDate>Thu, 02 Mar 2006 06:00:47 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://ioriwellings.spaces.live.com/blog/cns!D4DE46FA8730D2CA!756/comments/feed.rss</wfw:commentRss><wfw:comment>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!756.entry#comment</wfw:comment><dcterms:modified>2006-03-02T06:04:41Z</dcterms:modified></item><item><title>精确计算程序运行时间</title><link>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!719.entry</link><description>&lt;div&gt;星期三　天气：晴&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;除了工作没什么新鲜的&lt;/div&gt;
&lt;div&gt;每天还是吃饭　睡觉　上ＷＣ　中午不知道该吃啥&lt;/div&gt;
&lt;div&gt;都逆了&lt;/div&gt;&lt;pre&gt;using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Runtime.InteropServices;

namespace DebugENS.Test
{
 public class TestTime : System.Web.UI.Page
 {
  [DllImport(&amp;quot;Kernel32.dll&amp;quot;)]
  private static extern bool QueryPerformanceCounter(out long lpPerformanceCount);

  [DllImport(&amp;quot;Kernel32.dll&amp;quot;)]
  private static extern bool QueryPerformanceFrequency(out long lpFrequency);

  private long start;
  private long end;
  private long frequency;

  private void Page_Load(object sender, System.EventArgs e)
  {

   if (QueryPerformanceFrequency(out frequency) == false)
   {
    // Frequency not supported
    throw new Win32Exception();
   }
   QueryPerformanceCounter(out start);
   DateTime startTime = DateTime.Now;
   
   //数值越低，DateTime.Now 的方式越不精确了；
   for(int i=0;i&amp;lt;11000;i++)
   {
    Response.Write(i+&amp;quot; &amp;quot;);
   }
   Response.Write(&amp;quot;&lt;br&gt;&amp;quot;+ (DateTime.Now-startTime));
   QueryPerformanceCounter(out end);
   this.Response.Write(&amp;quot;&lt;br&gt;&lt;b&gt;Take Time:&lt;/b&gt;&amp;quot;+(end-start)/(double)frequency);//用时单位为秒。
  }

  #region Web 窗体设计器生成的代码
  override protected void OnInit(EventArgs e)
  {
   InitializeComponent();
   base.OnInit(e);
  }
  private void InitializeComponent()
  {    
   this.Load += new System.EventHandler(this.Page_Load);
  }
  #endregion
 }
}
&lt;/pre&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-3107968651015171382&amp;page=RSS%3a+%e7%b2%be%e7%a1%ae%e8%ae%a1%e7%ae%97%e7%a8%8b%e5%ba%8f%e8%bf%90%e8%a1%8c%e6%97%b6%e9%97%b4&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=ioriwellings.spaces.live.com&amp;amp;GT1=ioriwellings"&gt;</description><comments>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!719.entry#comment</comments><guid isPermaLink="true">http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!719.entry</guid><pubDate>Wed, 08 Feb 2006 03:01:59 GMT</pubDate><slash:comments>1</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://ioriwellings.spaces.live.com/blog/cns!D4DE46FA8730D2CA!719/comments/feed.rss</wfw:commentRss><wfw:comment>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!719.entry#comment</wfw:comment><dcterms:modified>2006-02-08T03:01:59Z</dcterms:modified></item><item><title>建立播放音乐服务</title><link>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!712.entry</link><description>&lt;div&gt;如果你的电脑没有　音箱　而恰好你的同事的电脑上有&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;那么如果　是这样的情况　就可以在同事的电脑上　开展一项服务了&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;呼呼　可以通过　Web服务　或　纯aspx页　来实现&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Process.Start(&amp;quot;\&amp;quot;C:\\Program Files\\Windows Media Player\\mplayer2.exe\&amp;quot;&amp;quot;,&amp;quot;d:\\love.mp3&amp;quot;);&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;呵呵　ＯＫ　就这么简简　这样你就在你的电脑上　调用它这个服务　你就能够听到&lt;/div&gt;
&lt;div&gt;对方喇巴　送出的　音乐了　&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;当然　这可以更好一些　比如　等待、上传文件、关闭进程　等等&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;写个Ｄｅｍｏ　&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;&lt;pre&gt;using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Web;
using System.Web.Services;

namespace DebugENS
{

 [WebService(Namespace=&amp;quot;http://iori/PlayMusic&amp;quot;)]
 public class PlayMusic : System.Web.Services.WebService
 {
  System.Diagnostics.Process p = null;

  static bool _running = false;

  public PlayMusic()
  {

   InitializeComponent();
  }
  
  private IContainer components = null;
    
  private void InitializeComponent()
  {
  }

  protected override void Dispose( bool disposing )
  {
   if(disposing &amp;amp;&amp;amp; components != null)
   {
    components.Dispose();
   }
   base.Dispose(disposing);  
  }

    [WebMethod]&lt;br&gt;  [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.Synchronized)]&lt;br&gt;  public void Play(String strUrl)&lt;br&gt;  {&lt;br&gt;   lock(typeof(PlayMusic))&lt;br&gt;   {&lt;br&gt;    if(!_running)&lt;br&gt;    {&lt;br&gt;     &lt;br&gt;     try&lt;br&gt;     {&lt;br&gt;      p = Process.Start(&amp;quot;\&amp;quot;C:\\Program Files\\Windows Media Player\\mplayer2.exe\&amp;quot;&amp;quot;,&amp;quot;/play /close &amp;quot;+strUrl);&lt;br&gt;      p.EnableRaisingEvents = true;&lt;br&gt;      p.Exited += new EventHandler(p_Exited);&lt;br&gt;      _running = true;     &lt;br&gt;     }&lt;br&gt;     catch(Exception ex)&lt;br&gt;     {&lt;br&gt;      System.Web.HttpContext.Current.Response.Write(ex.Message);&lt;br&gt;      String s = ex.Message;&lt;br&gt;     }&lt;br&gt;    }&lt;br&gt;    else&lt;br&gt;    {&lt;br&gt;     //this.Context.Response.Write(&amp;quot;&amp;lt;string xmlns=\&amp;quot;&lt;a href="http://iori/PlayMusic\&amp;quot;&amp;gt;Working...,Invoke"&gt;http://iori/PlayMusic\&amp;quot;&amp;gt;Working...,Invoke&lt;/a&gt; it in later.&amp;lt;/string&amp;gt;&amp;quot;);&lt;br&gt;    }&lt;br&gt;   }&lt;br&gt;  }&lt;/pre&gt;&lt;pre&gt;  private void p_Exited(object sender, EventArgs e)&lt;br&gt;  {&lt;br&gt;   _running = false;&lt;br&gt;  }&lt;/pre&gt;&lt;pre&gt;  [WebMethod]&lt;br&gt;  public void StopPlay()&lt;br&gt;  {&lt;br&gt;   if(p != null)&lt;br&gt;   {&lt;br&gt;    try&lt;br&gt;    {&lt;br&gt;     p.Kill();&lt;br&gt;    }&lt;br&gt;    catch(Exception ex)&lt;br&gt;    {&lt;br&gt;     this.Context.Response.Write(ex.Message);&lt;br&gt;    }&lt;br&gt;    _running = false;&lt;br&gt;   }&lt;br&gt;  } &lt;/pre&gt;&lt;pre&gt;}&lt;/pre&gt;}&lt;pre&gt;大宫告成　播放器　会在放完歌曲后　自动关闭&lt;br&gt;并且在放歌当中　不会再接受请求&lt;/pre&gt;&lt;pre&gt;再扩充一下　可以上传文件　让播放器　读文件流　&lt;br&gt;不过大可不必　仅需提供URL做为参数　就行了　&lt;/pre&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-3107968651015171382&amp;page=RSS%3a+%e5%bb%ba%e7%ab%8b%e6%92%ad%e6%94%be%e9%9f%b3%e4%b9%90%e6%9c%8d%e5%8a%a1&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=ioriwellings.spaces.live.com&amp;amp;GT1=ioriwellings"&gt;</description><comments>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!712.entry#comment</comments><guid isPermaLink="true">http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!712.entry</guid><pubDate>Sun, 05 Feb 2006 06:51:47 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://ioriwellings.spaces.live.com/blog/cns!D4DE46FA8730D2CA!712/comments/feed.rss</wfw:commentRss><wfw:comment>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!712.entry#comment</wfw:comment><dcterms:modified>2006-02-06T05:22:19Z</dcterms:modified></item><item><title>周未</title><link>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!688.entry</link><description>&lt;div&gt;星期五　天气：晴　不冷了&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;烦麻的一周　很快结速了&lt;/div&gt;
&lt;div&gt;年假己经请了　不知能不能休上　&lt;/div&gt;
&lt;div&gt;穷汉伸出手的意思是　到了这个时候　是该穷人出去务工的阶段了　呼呼&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;研究技术　.Net　上传文件　报错的问题&lt;/div&gt;
&lt;div&gt;不是那么简单的　在查看了　客户端与服务器ＩＩＳ　传输补获上&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;应该是服务器拒绝了连接　在上传缓冲区溢出后&lt;/div&gt;
&lt;div&gt;如果　紧紧是　４００　或者是其它的什么错误&lt;/div&gt;
&lt;div&gt;程序员　可以通过　IHttpMoudle 接口　定义　PreSendRequestContent　事件　来处理&lt;/div&gt;
&lt;div&gt;让服务器　反回　２００　状态码　即可&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;但如果　是拒绝连接　ｉｅ　就只能显示　ＤＮＳ错误　找不到该页的　４０４的默认信息了&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;我都成　ＭＶＰ了　呼呼&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;table cellspacing="0" border="0"&gt;&lt;tr height="8"&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://byfiles.storage.live.com&amp;#47;y1pa31O6XMmTm-nsQz4IsHU4WTPMDWPaeBaZaPtXEZwMEgq2B9cEEic8qch3QwxHjZ1"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;D4DE46FA8730D2CA&amp;#33;689&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="15"&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://byfiles.storage.live.com&amp;#47;y1pk7VazQ0ncaWcQlEOxfkSgNe7evhNMgRgNuIzCQ9e1FZu2LN1RhKyth5LfGW7b-NT"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;D4DE46FA8730D2CA&amp;#33;691&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="15"&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://byfiles.storage.live.com&amp;#47;y1pdnhprm74BYanY0fZbAtBxxf4pa23YSGGfmF9KXuOhiBLYIZM_cKaeVbrO608VxKM"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;D4DE46FA8730D2CA&amp;#33;692&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="15"&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://byfiles.storage.live.com&amp;#47;y1p8HUt5bw8aGdKYUK0RwjSDuxHQ5juUzXDsxhOm8P5dn-xLaffXjvpnTlbnWEcLHSk"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;D4DE46FA8730D2CA&amp;#33;693&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-3107968651015171382&amp;page=RSS%3a+%e5%91%a8%e6%9c%aa&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=ioriwellings.spaces.live.com&amp;amp;GT1=ioriwellings"&gt;</description><comments>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!688.entry#comment</comments><guid isPermaLink="true">http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!688.entry</guid><pubDate>Fri, 20 Jan 2006 05:35:30 GMT</pubDate><slash:comments>2</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://ioriwellings.spaces.live.com/blog/cns!D4DE46FA8730D2CA!688/comments/feed.rss</wfw:commentRss><wfw:comment>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!688.entry#comment</wfw:comment><dcterms:modified>2006-01-20T06:09:28Z</dcterms:modified></item><item><title>400 Bad Request.</title><link>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!678.entry</link><description>&lt;div&gt;这是一个专业的术语&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;也是一个专业的问题&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;首先　当客户端浏览器　提交的数据　如果很大的话&lt;/div&gt;
&lt;div&gt;服务器　就很可能抛出这样的　错误&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;可是遇到错误　并不可怕　可怕的是　客户端　不接受我们的处理&lt;/div&gt;
&lt;div&gt;它依旧我行我速&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;像Ｏｐｅｒａ　这样的浏览器　是好样的　它能够处理这样的问题&lt;/div&gt;
&lt;div&gt;那么它就能够给客户以良好的　反应形式&lt;/div&gt;
&lt;div&gt;当然　这需要在服务器端编码&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;而ＩＥ　默认不对此问题理采　它直接采用　ＤＮＳ错误　找不到该页的信息抛给用户&lt;/div&gt;
&lt;div&gt;显然　这是不道德的　也是　不负责任的&lt;/div&gt;
&lt;div&gt;然后　如果客户想看到这些错误时　它就必段设置浏览器中的选项　&lt;/div&gt;
&lt;div&gt;将《显示友好错误信息》的选项　去掉&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;这个问题困难了我二个礼拜　好吧　其它没有更好的办法解决&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;但还是能够解决的　只是不是直接的解决而己&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;当然全球　的　程序　工作者们　都用　IHttpMoudle　接口 &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;今天中午　我又只能吃包子了　时间都浪费在　ＩＥ　的　这个倔皮气上了　气我&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-3107968651015171382&amp;page=RSS%3a+400+Bad+Request.&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=ioriwellings.spaces.live.com&amp;amp;GT1=ioriwellings"&gt;</description><comments>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!678.entry#comment</comments><guid isPermaLink="true">http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!678.entry</guid><pubDate>Tue, 17 Jan 2006 05:25:06 GMT</pubDate><slash:comments>2</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://ioriwellings.spaces.live.com/blog/cns!D4DE46FA8730D2CA!678/comments/feed.rss</wfw:commentRss><wfw:comment>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!678.entry#comment</wfw:comment><dcterms:modified>2006-01-17T05:25:06Z</dcterms:modified></item><item><title>数据绑定表达式</title><link>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!563.entry</link><description>&lt;div&gt; &lt;/div&gt;
&lt;div&gt;两天来一个郁闷的问题一直困惑着我&lt;/div&gt;
&lt;div&gt;动态绑定的　下拉列表盒　不能正确定位&lt;/div&gt;
&lt;div&gt;成生的列表中　在ＨＴＭＬ代码中　无selected项&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;反复根踪调试无果&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;后来意识到　出现这些错误的页面都调用了 Page.DataBind()　方法&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;结果的测试中果不其然&lt;/div&gt;
&lt;div&gt;我在调用此方法之前　设置了　下拉列表盒的　选择项　&lt;/div&gt;
&lt;div&gt;但是之后调用该方法后　下拉列表框　又被从新绑定　选择项被置空&lt;/div&gt;
&lt;div&gt;解决方案是　先调用此方法进行数据绑定　然后　定项下拉列表盒　&lt;/div&gt;
&lt;div&gt;根据业务需求变化&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&amp;lt;%#GetCompanyMans()%&amp;gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-3107968651015171382&amp;page=RSS%3a+%e6%95%b0%e6%8d%ae%e7%bb%91%e5%ae%9a%e8%a1%a8%e8%be%be%e5%bc%8f&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=ioriwellings.spaces.live.com&amp;amp;GT1=ioriwellings"&gt;</description><comments>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!563.entry#comment</comments><guid isPermaLink="true">http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!563.entry</guid><pubDate>Thu, 24 Nov 2005 06:12:46 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://ioriwellings.spaces.live.com/blog/cns!D4DE46FA8730D2CA!563/comments/feed.rss</wfw:commentRss><wfw:comment>http://ioriwellings.spaces.live.com/Blog/cns!D4DE46FA8730D2CA!563.entry#comment</wfw:comment><dcterms:modified>2005-11-24T06:17:40Z</dcterms:modified></item></channel></rss>