asp.net-mvc – 在Azure中启用自定义错误
发布时间:2020-05-23 22:42:01 所属栏目:asp.Net 来源:互联网
导读:我无法设置IIS来为我的自定义错误页面提供MVC管道之外的错误.如果我在控制器中抛出一个异常,它就是所有文件,Application_Error事件处理: protected void Application_Error(object sender, EventArgs e) { var error = Server.GetLastError(); var
|
我无法设置IIS来为我的自定义错误页面提供MVC管道之外的错误.如果我在控制器中抛出一个异常,它就是所有文件,Application_Error事件处理: protected void Application_Error(object sender,EventArgs e)
{
var error = Server.GetLastError();
var routeData = new RouteData();
routeData.Values["Controller"] = "Error";
routeData.Values["Area"] = "";
routeData.Values["Exception"] = error;
if (error is HttpException)
{
switch (((HttpException)error).GetHttpCode())
{
case 401:
routeData.Values["Action"] = "NotAllowed";
break;
case 403:
routeData.Values["Action"] = "NotAllowed";
break;
case 404:
routeData.Values["Action"] = "NotFound";
break;
default:
routeData.Values["Action"] = "ServerError";
break;
}
}
else
{
routeData.Values["Action"] = "ServerError";
}
Response.Clear();
Server.ClearError();
IController controller = new ErrorController();
controller.Execute(new RequestContext(new HttpContextWrapper(((MvcApplication)sender).Context),routeData));
}
但是,如果我浏览到一个不存在的URL,IIS将处理404错误(或任何其他错误),给我标准的IIS错误消息,并完全忽略我的web.config设置: <system.web>
<customErrors mode="On" redirectMode="ResponseRewrite" defaultRedirect="/error">
<error statusCode="401" redirect="/error/notallowed" />
<error statusCode="403" redirect="/error/notallowed" />
<error statusCode="404" redirect="/error/notfound" />
<error statusCode="500" redirect="/error/servererror" />
</customErrors>
</system.web>
<system.webServer>
<httpErrors errorMode="Custom" defaultResponseMode="ExecuteURL">
<clear />
<error statusCode="401" path="/error/notallowed" />
<error statusCode="403" path="/error/notallowed" />
<error statusCode="404" path="/error/notfound" />
<error statusCode="500" path="/error/servererror" />
</httpErrors>
</system.webServer>
/ error / *由我的应用程序内的控制器处理.我该怎么做才能使IIS执行自定义错误路径,而不是给我标准的错误页面? 这是在Azure上运行的ASP.NET MVC 3.它在直接IIS下也不起作用,但开发服务器确实执行控制器. 解决方法IIS不尊重defaultResponseMode.您必须将responseMode添加到每个错误中,如下所示:<httpErrors errorMode="Custom"> <clear /> <error statusCode="401" path="/error/notallowed" responseMode="ExecuteURL" /> <error statusCode="403" path="/error/notallowed" responseMode="ExecuteURL" /> <error statusCode="404" path="/error/notfound" responseMode="ExecuteURL" /> <error statusCode="500" path="/error/servererror" responseMode="ExecuteURL" /> </httpErrors> 为什么默认不适用超出我的范围. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ASP.Net,C#.Net和VB.Net之间的区别?
- asp.net – HttpContext.Current.Cache可用于所有会话
- asp.net-core – 从ASP.NET Core MVC Web应用程序(RC2)引用
- asp.net – 脚本标签和链接标签进入asp:内容或外部
- 认证和授权在ASP.NET MVC 5
- 如何从ASP.NET中的代码隐藏文件访问IFRAME?
- asp.net – Gridview行编辑 – 动态绑定到DropDownList
- asp.net – 使用Razor有点像回到经典的asp
- asp.net – recaptcha https问题https://api-secure.recapt
- asp.net-mvc – MVC 5具有身份验证模式的外部身份验证=表单
推荐文章
站长推荐
- asp.net-mvc-3 – 通过点击提交两次,避免在Asp.n
- asp.net – MVC ViewModel错误 – 没有为此对象定
- asp.net – 在将其上传到服务器之前,在客户端进行
- ASP.NET Web Forms 4.5模型绑定,其中模型包含一个
- asp.net-mvc – 如何构建一个企业MVC应用程序,业
- asp.net – 对于未更改的静态内容,Amazon CloudF
- asp.net-mvc – ASP.Net MVC中的线程安全性
- asp.net-mvc – Asp.Net MVC – “动态”路由的最
- .net – HttpHandler在IIS 7中不起作用
- 有什么好的参考或工具可用于将ASP转换为ASP.NET?
热点阅读
