asp

ASP.NET中OutOfMemoryException异常的处理方案

谁说胖子不能爱 提交于 2020-03-12 06:00:39
相信做ASP.NET中大型Web应用的人都碰到过OutOfMemoryException这个异常,对于这个问题我研究了很久,在微软的技术文档上也了解过此问题出现的原因,说实话,到目前我仍然没有完美的解决方案,这里只是把我处理该问题的一些经验提出来和大家一起分享,尽可能的避免该问题的发生。 1) 首先,在硬件的配置上,出现该问题的原因我想很多人已经知道了,那就是IIS对于内存的管理存在一些限制,普遍的认识是800M的线程内存使用上限(通过我的一些客户实践证明的确如此,甚至更低...),不管是w3wp还是aspnet_wp,这个限制对ASP.NET应用服务器的机器配置而言其意义是很明显的,超过2G的内存对于单纯的Web服务器而言作用是很微小的,所以在Web服务器的配置上可在CPU的数量方面多考虑。 2) IIS配置上的方案,IIS5.0可安装一个IIS5Recycle程序,该程序采用服务的形式来回收工作进程,安装说明:http://support.microsoft.com/?id=322350,对于IIS6.0可以在应用程序池的配置上设置自动回收工作线程的时间,我一般都会设在凌晨2点:) 3) 在.NET Framework的配置上,修改machine.config配置文件中的配置节<processModel>的属性“memoryLimit”,这个属性的值默认为“60”

asp.net 视图引擎归类

心已入冬 提交于 2020-03-12 05:17:54
1. ASPX View Engine 第一个也是我们最熟悉的---aspx,相信做过WebForm开发对Aspx都比较了解: 小示例: <%@ Control Inherits="System.Web.Mvc.ViewPage<IEnumerable<Product>>" %> <% if(model.Any()) { %> <ul> <% foreach(var p in model){%> <li><%=p.Name%></li> <%}%> </ul> <%}else{%> <p>No products available</p> <%}%> 设计目标: 一个用于呈现Web Froms页面的输出的视图引擎。 优点: •与ASP.NET MVC紧密集成 •对于以往ASP.NET开发人员有更好体验 •智能感应 •能选择其它语言的 CodeDom provider (例如: C#, VB.NET, F#, Boo, Nemerle) •立即编译或预编译的views 缺点: •在Asp.net MVC中容易与经典的Asp.net模式混淆起来,并且Asp.net MVC已不再支持它们。 (例如: ViewState PostBack) •能有助于反模式的"标签团" •智能感应强迫样式总是不在内联的代码块。 •设计简单模板时会凌乱。 2. Razor View 在Asp.net MVC

ASP.NET MVC的四种视图引擎

那年仲夏 提交于 2020-03-12 05:16:40
继上周介绍了Razor之后,ASP.NET MVC 现在已有四种主要的视图引擎。其他三种引擎是Spark、NHaml和传统的ASPX文件模板。本文将大致介绍这四种引擎,并着重讨论新的Razor引 擎。 ASPX风格的视图引擎可以追溯到遥远的ASP。使 用<%= %>和<%: %>语法的占位符在这类风格中占据了统治地位。随着时间的推移,ASPC控件被加入进来,之后是母版页(Master Page),但这同时也带来 了昂贵的页面生命周期。 Spark ,在Castle项目的MonoRail中也使用到,其采取了稍微不同的做法。它既支持占位符,也可以用特殊的属性和标签不受限制地把HTML和代码混合在一起。它或许有些繁琐,但却拥有完全兼容 XML的优势。 NHaml 是 Haml标记语言 的.NET实现。这种语言根本不使用XML式的语法。借助于一种速记语法,它免去了前一种风格(xml)中大量的语法噪音,比如结束标签等。 最新的视图引擎是微软的 Razor 。虽然所有的模板系统都具有一些共同特征,但 Razor却和我们前面讨论的三种视图引擎截然不同。不同于NHaml,Razor仍然使用XML标记;但又不同于Spark,Razor在使用XML代 码方面没有走得那么极端。它也不完全类似于ASPX,因为它把那些比较笨重的占位符替换成@符号接表达式或者普通的控制块。因为不需要特殊的结束标记,所

asp.net面试问题系列一

烈酒焚心 提交于 2020-03-11 18:17:05
1.ASP.NET是什么 2.ASP.net和asp 的区别 3.说明asp.net中Application特性 4.asp.net的页面运行机制 5.简述asp.net 一个页面的生命周期 1.ASP.NET是什么? 不是一种语言,而是创建动态web页的服务端技术。 它是.net framwork一套生成web应用程序和web服务的技术 例如:运用公共语言运行时在服务器后端为用户提供建立强大的企业级web应用程序的编程框架 2.ASP.net和asp 的区别? 1、开发语言不同。 ASP使用non-type脚本语言来开发应用程序或web网页,在web端添加代码和在客户端添加代码一致,导致代码杂乱无章。 ASP.NET使用strongly-type编程语言开发应用程序或web网页,也可以使用.NET Framework框架开发,代码一致性较ASP好了许多。 2、运行方式不同。 ASP是解释运行的编程框架,使用js等脚本语言,运行速度慢。 ASP.NET是编译性的编程框架,运行效率高且使用的是服务器端预先编译好的代码库。 3、开发方式不同 3.说明asp.net中Application特性 在ASP.NET开发环境中,程序员通常把类似的配置数据放在Web.config中。 如果要使用Application的话,要注意的是所有的写操作都要在Global

分页存储过程(一)使用SQL Server2005的新函数构造分页存储过程

夙愿已清 提交于 2020-03-11 16:59:07
使用 SQL Server2005 的新函数构造分页存储过程 分页存储过程一直是很多人经常用到的东西,怎么样才能设计一个既实用,又强大,还可以解决大数据量的分页存储过程呢?其实在很多时候设计的度还是要把握的,不至于让自己陷入【非要把它设计成万能的分页存储过程】的怪圈中才是最重要的,因为我们还要留出时间还解决其他的很多问题,个人认为适度就可以了,留出一定的空间。也因为万能是不存在的,万物在一定的范畴之内都是合理的,出了范畴可能就没有合理的了。 分页存储过程大致有下列几种 1、 利用 Not in 和 select top 2、 利用 id 大于多少和 select top 3、 利用 sql 中的游标 4 、临时表 可以参看网上的以下链接 http://www.zxbc.cn/html/20090625/71918.html http://read.newbooks.com.cn/info/174545.html 在 2005 中我们的选择就多了,可以利用新语法 CTE (公用表表达式) , 关于 CTE 的介绍大家可以参看博客园中一位仁兄的系列教程 http://www.cnblogs.com/nokiaguy/archive/2009/01/31/1381562.html 或者干脆上微软的官网 http://msdn.microsoft.com/zh-cn/library

【ASP.NET MVC系列】浅谈MVC

一世执手 提交于 2020-03-11 12:20:12
描述 本篇文章主要概述ASP.NET MVC,具体包括如下内容: 1.MVC模式概述 2.WebForm概述 3.WebForm与MVC区别 4.ASP.NET MVC发展历程 5.运用程序结构 6.ASP.NET MVC 默认约定 一 MVC模式概述 1. MVC模式运用领域 分析: (1)当前,MVC作为一种主流框架,被广泛运用,如JAVA Web开发,.NET ASP,NET MVC (2)MVC模式被广泛运用于中间件,如RabbitMQ; (3)MVC模式广泛运用于接口开发,如ASP.NET WebAPI; (4)其他领域; 2.MVC大致流程概述 分析: (1)MVC由三大核心模块构成:控制器(Controller,简称C),模型(Model,简称M)和视图(View,简称V); (2)View负责视图呈现,Model负责数据处理,Controller负责处理视图与模型之间逻辑; (3)WebForm中,一般是UI+BLL+DAL+Utility+WebService模式,而在MVC中,一般采用SOA+WebAPI+DAL+Model+MQ+AOP+Docker模式; 二 WebForm概述 1. WebForm生命周期 分析: (1)WebForm Page生命周期,本质上为几个方法的运用; (2)重点理解管道; (3)分析页面生命周期时,应结合http本质来综合分析;

【ASP.NET】Repeater的那些事

老子叫甜甜 提交于 2020-03-10 10:29:39
Repeater常用事件:   Repeater有两个事件比较常用,①:Repeater1_ItemDataBound;②:Repeater1_ItemCommand;第一个事件net小伙已经在 【ASP.NET】ItemDataBound之repeater 和 listview 写过了。现在叙述第二个事件。   从MSDN上可以看出,如果在Repeater中插入一个按钮的时候,执行此按钮的OnClick事件的时候需要借助此事件来完成。   在Repeater中插入按钮的时候要对按钮的源码进行设置: <asp:Button ID="Button1" CommandName="bianji" runat="server" OnClientClick="return window.confirm('确认要通过吗? ')" CommandArgument='<%#Eval("Title") %>' Text="通过" />   从代码当中可以看出,在Button中插入了两个属性 ——CommandName和CommandArgument; CommandName的作用就是为了在后台可以找到此按钮,就像按钮的ID。CommandArgument的作用就是把所需要的参数传递到后台。 后台代码如下: 1 protected void Repeater1_ItemCommand(object

ASP.NET CORE系列【一】搭建ASP.NET CORE项目

十年热恋 提交于 2020-03-10 10:19:00
原文: ASP.NET CORE系列【一】搭建ASP.NET CORE项目 为什么要使用 ASP.NET Core? NET Core 刚发布的时候根据介绍就有点心里痒痒,微软的尿性都懂的,新东西bug太多,现在2.0也发布很久了,决定研究一下。 ASP.NET Core官方文档 https://docs.microsoft.com/en-us/aspnet/core/getting-started ASP.NET Core 具有如下优点: 生成 Web UI 和 Web API 的统一场景。 集成 新式客户端框架 和开发工作流。 基于环境的云就绪 配置系统 。 内置 依赖项注入 。 轻型的 高性能 模块化 HTTP 请求管道。 能够在 IIS、Nginx、Apache、Docker 上进行托管或在自己的进程中进行自托管。 定目标到 .NET Core 时,可以使用并行应用版本控制。 简化新式 Web 开发的工具。 能够在 Windows、macOS 和 Linux 进行生成和运行。 开放源代码和 以社区为中心 。 相信很大一部分人因为Core的跨平台慕名而来!现在就开始折腾吧。 新建项目 新建项目,我们选择ASP.NET Core MVC, 最有趣的是Core继承了NG和React,等以后再来研究这些。 现在专注我们的MVC 项目结构 新项目结构大体跟传统MVC区别不大,

NET CORE 管道模型及中间件使用解读

∥☆過路亽.° 提交于 2020-03-09 13:39:17
说到NET CORE 管道模型不得不先来看看之前的ASP.NET 的管道模型,两者差异很大,.NET CORE 3.1 后完全重新设计了框架的底层,.net core 3.1 的管道模型更加灵活便捷,可做到热插拔,通过管道可以随意注册自己想要的服务或者第三方服务插件. ASP.NET 管道 请求进入ASP.NET 工作进程后,由进程创建HttpWorkRequest 对象,封装此次请求有关的所有信息,然后进入HttpRuntime 类进行进一步的处理。HttpRuntime 通过请求信息创建HttpContext 上下文对象,此对象将贯穿整个管道,直到响应结束。同时创建或从应用程序池里初始化一个HttpApplication对象,由此对象开始处理之前注册的多个HttpModule。之后调用HandlerFactory 创建Handler处理程序,最终处理此次请求内容,生成响应返回。 以前的管道模型是全家桶方式,所有的管道不支持热插拔,一次性全部集成在里面,所有这也是ASP.NET 没有.NET CORE 性能好的一大原因所在。 IHttpModule 和IHttpHandler 已经不复存在了,取而代之的是一个个中间件(Middleware)。Server将接收到的请求直接向后传递,依次经过每一个中间件进行处理,然后由最后一个中间件处理并生成响应内容后回传,再反向以此经过每个中间件

ASP.NET Web程序设计 第一章 ASP.NET Web应用程序基础笔记

狂风中的少年 提交于 2020-03-08 14:33:01
一、Web应用程序简介 1、网络应用程序开发体系结构: 1)C/S体系结构:Client/Server的缩写,即客户端/服务器端结构 举例:QQ 英雄联盟 word、excel不是,因为不需要联网、登录 2)B/S体系结构:Browser/Server的缩写,即浏览器/服务器结构 举例:网易:www.163.com, 淘宝网:www.taobao.com 2、Web应用程序分为两种: 1) 静态网站 :网页内容预先设计、制作,然后部署至服务器。如果内容需要更新, 必须修改网页重新部署。 2) 动态网站 :网页功能、样式预先设计、制作并部署至服务器,其呈现的内容在用户访问时由服务器端程序动态生成,因此内容可以及时更新, 不需要重新修改和部署。 二、HTTP协议 1、URL是统一资源定位器的缩写,俗称:网址 2、HTTP:超文本传输协议 3、一次完整的请求响应过程; 1)客户端和 Web 服务器建立连接 2)客户端发送 HTTP 请求 3)服务器端接受客户端的请求,生成 HTTP 响应并发送给客户端 4)服务器端关闭连接。客户端接收服务器端的响应,恢复页面 4、GET和POST的请求方式的区别: 1)GET请求不提交表单控件的值。 2)POST请求提交表单控件的值。 三、ASP.NET简介及Web From创建(划重点) 1、ASP.NET 是微软 .NET 体系提供的 动态Web