asp.net和ajax未捕获异常处理机制
asp.net和ajax未捕获异常处理机制
这里的异常处理主要是指开发人员在业务代码中未捕获的异常。未捕获异常处理的目的:
1:在应用程序域级别对异常类型进行处理;
2:在处理的基础上,可以将错误信息记录日志;
3:以友好的方式提示最终用户页面发生了错误。
.NET提供了四种错误处理机制,它们有一定的优先级顺序:Page_Error事件>ErrorPage属
性>Application_Error事件>
<customErrors>配置项。下面分别介绍这四种错误处理机制的用法。最后介绍ajax如果捕获服务器端代码抛出的异常。
1:Page_Error事件
Page_Error 事件提供一种捕获在页级别出现的错误的方法。
protected void Page_Error(object sender, EventArgs e)
{
Exception objErr = Server.GetLastError().GetBaseException();
Response.Write("Error:" + objErr.Message);
Server.ClearError();
}
2.ErrorPage属性
要让ErrorPage属性能够发挥作用,<customErrors>配置项中的mode属性必须设为"On"。
<customErrors mode="On" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>
如果Page_Error和ErrorPage都存在,当抛出Exception时,页面执行顺序是怎样的呢?页面会先执行Page_Error事件处理
函数,如果Page_Error()事件中调用函数Server.ClearError()清除异常信息,则不会跳转到ErrorPage属性指定页面;
如果没有调用Server.ClearError(),Exception信息会继续向上抛,页面会跳转到ErrorPage指定页面。这也就证明了优先
级顺序:Page_Error事件>ErrorPage属性。
这里需要指出,如果你没指定ErrorPage属性,则自动导向到GenericErrorPage.htm。
3.Application_Error事件
相关文档:
//private string datapatch = ConfigurationSettings.AppSettings["acessconn"];//数据库地址
private string datapatch = "db/global.asa";//数据库地址
///
/// 取得dataset
//
/// 查询语句
///
public DataSet GetDataSet(string Commandtext)
{&nbs ......
ASP.NET C# 生成静态页面简单方法
//源码是替换掉模板中的特征字符
string mbPath = Server.MapPath("template.html");
Encoding cod ......
Asp.net支持三种类型的cache
想写一个技术快速概述,可能写得太多了。技术概略的目的是以最快最简单的方式描述出技术要点,也是我希望的最有效率的知识传播方式。
1. 页面/控件cache
2. 应用程序级cache
3. 浏览器客户端cache
从实现方式来看,页面/控件cache和应用程序级cache都是存放在服务器内存里面的,随着内 ......
程序代码
public static string GetRealIP()
{
string ip;
try
{
HttpRequest request = HttpContext.Current.Request;
if (request.ServerVariables["HTTP_VIA"] != null)
{
ip = request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString().Split(',')[0].Trim();
}
else
{
ip = requ ......
ASP.NET生成随机密码
在开发需要用户注册后才能使用提供的各项功能的应用程序时,在新用户提交注册信息后,较常见的做法是由程序生成随机密码,然后发送密码到用户注册时填写的电子信箱,用户再用收到的密码来激活其帐户。
实现ASP.NET生成随机密码功能是很容易的,下面的代码给出了完整的实现方法:
publicstaticstring ......