‘ASP.NET’ 分类的存档

[转载]五幅图演示ASP.NET编译过程 – keepfool – 博客园. No 1. 源代码 > 编译 > 本地代码 No 2. 语言编译器 No 3. 编译成MSIL No 4. MSIL的组成(中间语言和元数据) No 5. Web Application和Website的区别 简单概括一下: 语言编译器:无论是VB code还是C# code都会被Language Compiler转换为MSIL MSIL的作用:MSIL包含一些元数据和中间语言指令 JIT编译器的作用:根据系统环境将MSIL中间语言指令转换为机器码 第一次运行Website时,CLR会将MSIT通过JIT进行编译,最终转换为执行速度非常快的Native Code。这也可以解释为什么ASP.NET网站第一次运行时会较慢,而后面的执行速度则会相对快很多。 本文已经同步至我的个人博客站点:积累吧|五幅图演示ASP.NET编译过程 本文PPT下载:ASP.NET编译过程

2012年5月15日09:50 没有评论

[转载]ASP.NET Session丢失问题原因及解决方案 – kdkler – 博客园. 正常操作情况下会有ASP.NET Session丢失的情况出现。因为程序是在不停的被操作,排除Session超时的可能。另外,Session超时时间被设定成60分钟,不会这么快就超时的。 现在我就把原因和解决办法写出来。 ASP.NET Session丢失原因: 由于Asp.net程序是默认配置,所以Web.Config文件中关于Session的设定如下: <sessionState mode=’InProc’ stateConnectionString=’tcpip=127.0.0.1:42424′ SQLConnectionString=’data source=127.0.0.1;Trusted_Connection=yes’ cookieless=’true’ timeout=’60′/> 我 们会发现sessionState标签中有个属性mode,它可以有3种取值:InProc、StateServer?SQLServer(大小 写敏感) 。默认情况下是InProc,也就是将Session保存在进程内(IIS5是aspnet_wp.exe,而IIS6是W3wp.exe),这个进程不 稳定,在某些事件发生时,进程会重起,所以造成了存储在该进程内的Session丢失。 哪些情况下该进程会重起呢?微软的一篇文章告诉了我们: 1、配置文件中processModel标签的memoryLimit属性 2、Global.asax或者Web.config文件被更改 3、Bin文件夹中的Web程序(DLL)被修改 4、杀毒软件扫描了一些.config文件。 更多的信息请参考PRB: Session variables are lost intermittently in ASP.NET applications ASP.NET Session丢失解决办法: 前面说到的sessionState标签中mode属性可以有三个取值,除了InProc之外,还可以为StateServer、SQLServer。这两种存Session的方法都是进程外的,所以当aspnet_wp.exe重起的时候,不会影响到Session。 现在请将mode设定为StateServer。StateServer是本机的一个服务,可以在系统服务里看到服务名为ASP.NET State Service的服务,默认情况是不启动的。当我们设定mode为StateServer之后,请手工将该服务启动。 这样,我们就能利用本机的StateService来存储Session了,除非电脑重启或者StateService崩掉,否则Session是不会丢的(因Session超时被丢弃是正常的)。 除 此之外,我们还可以将Session通过其他电脑的StateService来保存。具体的修改是这样的。同样还在sessionState标签 中,有个stateConnectionString=’tcpip=127.0.0.1:42424′属性,其中有个ip地址,默认为本机 (127.0.0.1),你可以将其改成你所知的运行了StateService服务的电脑IP,这样就可以实现位于不同电脑上的Asp.net程序互通 Session了。 如果你有更高的要求,需要在服务期重启时Session也不丢失,可以考虑将mode设定成SQLServer,同样需要修改SQLConnectionString属性。关于使用SQLServer保存Session的操作,请访问这里。 在使用StateServer或者SQLServer存储Session时,所有需要保存到Session的对象除了基本数据类型(默认的数据类型,如int、string等)外,都必须序列化。只需将[Serializable]标签放到要序列化的类前就可以了。 如: [Serializable] public [...]

2012年5月2日13:12 评论关闭

[转载]ASP.NET数据库连接字符串总结 – maplecumt – 博客园. 一、使用OleDbConnection对象连接OLE DB数据源1.连接Access 数据库 Access 2000: “provider=Microsoft.Jet.Oledb.3.5;Data Source=Access文件路径” Access 2003: “provider=Microsoft.Jet.Oledb.4.0;Data Source=Access文件路径” Access 2007: “provider=Microsoft.Ace.Oledb.12.0;Data Source=Access文件路径” 备注:Access数据库只提供两个连接属性provider(数据提供程序)和data source(数据源); Access2000\2003的文件格式是“。mdb”,Access2007的文件格式是“。accdb”; Access的数据提供程序版本是向下兼容的,在Win7下测试使 用Microsoft.Jet.OLEDB.3.5提示“未在本地计算机上注册“Microsoft.Jet.OLEDB.3.5”提供程序。”,改用 Microsoft.Jet.OLEDB.4.0或者Microsoft.Ace.OLEDB12.0完全可以访问Access2000的数据库文件。当 然也可以尝试使用微软提供的MDAC 来修改provider的版本。 2.连接Excel数据库 Excel 2003: “provider=Microsoft.Jet.OLEDB.4.0;Data Source=Access文件路径;extended properties=excel 8.0” Excel 2007: “provider=Microsoft.Ace.OLEDB.12.0;Data Source=Access文件路径;extended properties=excel 12.0” 备注:在代码中引用工作表时,应将表名表示为“[工作表名$]”,遇到字段为数据库保留关键字时,给该字段名加 上[]以示区别,如定义select 语句时:string connStr=”select * from [login$] where username=’abc’ and [password]=’abc123’ ”; 如果在数据表中用数字作为文本类型数据时,则应在数字前加单引号将默认的数值强行设定为文本类型。 3.连接SQL [...]

2012年4月25日13:37 评论关闭

[转载].NET性能分析最佳实践之:如何找出使用过多内存的.NET代码(基础篇) – 小洋(燕洋天) – 博客园.  .NET性能分析最佳实践之:如何找出使用过多内存的.NET代码(基础篇)        在.NET应用中一个常常影响性能的因素就是代码消耗了过多的内存。很多的开发人员在编写代码的过程中常常不会关注性能,从而使得应用程序中到处存在性能 瓶颈。很多的时候,开发人员关注的总是代码的执行时间的长短,而把真正的性能问题丢掉了一边。在本篇文章中,我们将会找出代码中的哪些功能消耗了多少内 存。                本篇文章比较简单,我们会主要详细的介绍CLR Profiler这个工具。    系列文章: .NET性能分析最佳实践之:如何找出使用过多内存的.NET代码(进阶篇     本篇议题如下: 基础篇:详解介绍Profiler的使用 进阶篇:调用Profiler的API进行   基础篇:详解介绍Profiler的使用        大家可以从这里从微软的站点下载CLR Profiler。一旦下载CLR Profiler之后,我们就可以解压,然后运行Bin文件夹中的“CLRProfiler.exe”。 首先我们来介绍一下CLR Profiler的功能。        CLR Profiler确实是一个不错的工具,通过使用它,我们可以了解一个.NET应用程序到底是如何使用内存的,基本上面它的功能可以分为两类,如图所示:     1. 对一个.NET应用中的内存是如何分配的给出一个完整的描述。所以,我们可以看到每一种类型,方法所占用的内存情况。 2. 它告诉我们一个方法被调用了多少次。          这里需要注意的就是:不要再生产环境或上面的服务器站点中运行CLR Profiler,因为它会严重的影响程序的影响。例如,如果我们的应用程序中包含两个方法,fun1和fun2,此时当我们运行CLR Profiler的时候,它会将一些逻辑注入到应用程序中,通过下面的一个图就可以很清楚的看出这个问题:       说了这么多,我们还是来看看,如何使用CLR Profiler。        首先,在使用CLR Profiler之前,我们要清楚:要使用这个工具来干嘛?基本上,有两点理由:查看内存的分配与使用的情况;查看方法被调用次数。 启动了CRLProfiler.exe之后,选择要检查的程序,如下图:     此时,应用程序就开始运行,我们就可以在Profiler中看到一些信息,例如应用程序占用的内容,每一代对象占用的大小等,如下: [...]

2012年4月10日15:13 评论关闭

[转载]Asp.net 页面基本对象 – 强子哥 – 博客园. 一、Response对象   1、输出信息到客户端。   2、主要有Write()和Redirect()两个方法。Write()方法:输出信息到浏览器。Redirect()方法:地址转向,将浏览器引导到新的WEB页或网站。 3、作用:使用Write()方法,动态地向浏览器输出信息。例:Response.Wrtie(“这是我的第一个网页”);Response.Write(“现在的时间是:”+DateTime.Now.ToString());   注:与C#语言中的Console.Write()相似。输出回车:Response.Write(“<br>”);   二、Request对象   1、作用:从客户端得到数据信息。常用的方法有:Form[]方法和QueryString[]方法。   2、Form[]方法:用来获取客户端以post方式提交的数据。格式:Request.Form[“数据名称”]; 3、QueryString[]方法:用来获取客户端以get方式提交的数据。格式:Request.QueryString [“数据名称”];   4、例:有网址:parm.aspx?tid=3452   则可用Request.QueryString[“tid”]来获取3452这个值   Request常用属性   1、Request.UserAgent:用来获取客户端浏览器版本。   2、Request.UserHostAddress:获取客户端ip地址。   3、Request.ApplicaionPath:获取当前网站的相对路径。   4、Request.PhysicalApplicationPath:获取当前网站的绝对路径。   三、Server对象   1、作用:访问服务器信息。   2、Server.MachineName:获取服务器名称 3、Server.HtmlEncode():将字符串进行html编码。 4、Server.Transfer();终止当前页的执行,开始执行新页。与Response.Redirect()相似。 5、Server.MapPath();返回物理路径。   返回网站及文件夹路径   Server.MapPath(“~”); Server.MapPath(“.”); Server.MapPath(“ ”); Server.MapPath(“~/image/”);   四、Application对象   [...]

2012年4月1日08:42 评论关闭
备案信息:冀ICP备10007948号