问题标签 [httpexception]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
536 浏览

c# - 覆盖、扩展或滚动您自己的 HttpException?

我想控制我的 Http 异常,以便能够决定响应正文中的内容。如果我抛出一个标准HttpException(404, "not found");,然后使用提琴手,我可以看到 404 状态代码已设置,但是所有这些垃圾 html 都被塞入了响应正文。

有没有办法覆盖或扩展 HttpException 类以允许您将自己的内容注入响应正文?

我试图实现我自己的CustomHttpException,就像 HttpException 扩展了 ExternalException 类一样,但无论我如何切割它,系统总是会在正文中使用相同的标准 html 引发 500 错误。

有什么帮助吗?

0 投票
1 回答
3232 浏览

c# - 在 ASP.NET 中强制自定义 HTTP 401 未经授权的页面

我编写了一个 Web 应用程序供内部使用(而不是更广泛的 Internet),它使用 Windows 身份验证 - ASP.NET 询问 Windows 以获取当前的凭据集。如果在我设置的 AD 组中找不到用户名,则从受保护页面的 Page_PreInit 调用的身份验证方法会引发 401 错误。

我从 Throwing an HttpException 实现 Earlz 的 CustomErrorsFixer总是发回 HTTP 500 错误?因为我也只得到了500s。现在我的自定义错误页面正在工作,这很棒。

在Visual Studio开发服务器本地开发,我发现如果我没有访问权限,我就直接进入401错误页面。然而!当我将站点发布到 IIS 服务器时,如果用户无权访问,他们会收到Windows 用户名/密码提示(XP 中丑陋的小提示)。这实际上非常方便,因为它让登录到不同域的人有机会输入正确的凭据。

在这个阶段,当密码提示出现时,如果用户点击CancelEscape,他们会转到自定义的 401 页面,该页面告诉他们如何去请求访问。但是,如果他们尝试输入用户名和密码,默认为错误的域,因此是不正确的凭据,他们会显示默认的 IIS 401 页面,我非常希望避免这种情况。第三种情况 - 如果他们输入正确的凭据,他们会被询问 3 次,然后显示自定义错误页面。

因此,如果用户通过“身份验证”,他们将看到自定义 401 页面,如果没有,则看到标准 IIS 页面。

但是,我发现大多数人在提示输入用户名/密码框时只输入没有域的用户名/密码 - 这最终是不正确的,因此将它们发送到非自定义 IIS 401 页面。有谁知道我该如何解决这个问题?这非常烦人,因为人们需要查看自定义 401 页面才能查看他们需要请求访问哪个组!

万一这很重要,我们都使用的浏览器是 XP 上的 IE8 或 Windows 7 上的 IE9。如果我应该发布任何代码,请告诉我。

0 投票
1 回答
6285 浏览

c# - 从 Application_Error 抛出 http 异常(未经授权)

我试图从 Global asax Application_Error 中抛出这一行

但由于某种原因,我在浏览器中得到 200 而不是 401,你知道为什么吗?

更新:

0 投票
1 回答
2807 浏览

symfony - Symfony2 HttpException(422,'一些消息')不起作用

我的问题如下:

throw new HttpException(422, "some message")在控制器中不起作用。

然而,throw new HttpException(404, "some message")作品,以及400(等)

为什么我不能HttpException422 HTTP 状态码抛出一个?

当我尝试这样做时,我会收到带有以下调试信息的 [200] 响应:

致命错误:在供应商\symfony\src\Symfony\Component\HttpKernel\Debug\ErrorHandler.php 中,未捕获的异常 'ErrorException' 带有消息 'Notice: Undefined offset: 422 in app\cache\dev\classes.php line 3079' 67

( ! ) ErrorException: 注意: Undefined offset: 422 in app\cache\dev\classes.php 第 3079 行在 vendor\symfony\src\Symfony\Component\HttpKernel\Debug\ErrorHandler.php 第 67 行

(如果重要的话,我会使用 FOSRESTBundle ......当然我清除了缓存)

0 投票
1 回答
11457 浏览

c# - 捕捉 HttpException 的好主意?

我的 output.aspx 页面有时会出现以下错误:

异常详细信息:System.Web.HttpException:请求超时。

源错误:

在执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常起源和位置的信息。

堆栈跟踪:

[HttpException (0x80004005): 请求超时。]

捕捉这个异常是个好主意吗?我在哪里做,因为我的 output.aspx.cs 有一个 Page_Load 并且该函数调用 RunTable()。我应该在该功能内容周围放置一个 try catch 块吗?

0 投票
1 回答
2157 浏览

c# - 发送 HTTP 标头后,Windows Auth Server 无法设置状态

我有 C# n 层应用程序。通常我们使用表单身份验证并且一切正常,但是当我们尝试在 Windows 上设置身份验证时,它开始在某些情况下引发以下异常(主要是在管理中,例如当您尝试编辑用户和客户端调用服务器以获取用户详细信息时)这个根本没有在 Internet Explorer 中发生。在 Firefox 和 Chrome 中,它每次都会抛出它。

拜托,你能给我一些建议,什么可能出错以及如何解决它?谢谢

0 投票
1 回答
1982 浏览

c# - 为什么我会从 VirtualPathUtility ToAbsolute 获得带有某些路径的 HttpException?

我正在尝试使用VirtualPathUtility.ToAbsolute将应用程序相对路径(例如 )解析~/MyPage.aspx为应用程序绝对路径(例如/MySite/MyApp/MyPage.aspx. 但是,对于某些路径,我收到一条HttpException说我的路径“不是有效的虚拟路径”的说法。例子:

这是怎么回事?

0 投票
1 回答
1192 浏览

asp.net - 重写 ASP.NET 输出时“无效使用响应过滤器”

我有一个非常基本的 ASP.NET 响应过滤器,它工作“很好”。我用它来替换静态资源的域。

我在控制器中的代码如下所示:

而重写过滤器本身:

对于我网站上的某些页面(我还找不到押韵或原因),我可能在 90% 的情况下收到“HTTP Web 异常:响应过滤器的无效使用”。简单地刷新十几次就会得到正确的输出,但是再次刷新会出现异常:

我在响应过滤器中做错了吗?

0 投票
2 回答
3520 浏览

asp.net - ASP.NET 如何获取 HttpException 错误代码

我正在尝试捕获和处理特定的 HttpException,即“远程主机关闭了连接。错误代码是 0x800704CD。”

我的目的是将 HttpException 的 Catch 添加到相关的 Try 块中,并测试生成的错误代码。示例代码:

但我不知道如何从 HttpException 对象中提取异常中显示的错误代码(即“0x800704CD”)。将 ErrorCode 属性的整数值转换为十六进制会返回“800704CD”,所以很明显我不明白这个代码是如何生成的。

谢谢。

0 投票
1 回答
2951 浏览

asp.net-mvc - 带有 JSON 返回的 MVC REST API 状态代码 500

我正在 MVC3 上开发一个休息 API。
每当验证出现问题时,我想抛出 500 +描述错误的json(json 可以是未验证字段的列表)。
问题是 json 在包含整个HttpExeption( Server Error in '/' Application.)的 html 中返回
如果我把filterContext.ExceptionHandled = true;消息清除干净,但客户端看不到他身边的 500 错误。这种情况:https ://stackoverflow.com/a/4707762/936651实际上是html并将干净的json提供给客户端,但也消除了500错误。