web.config中带有现有响应自动的httpError的行为

时间:2019-09-20 15:50:12

标签: .net iis web-config

我正在寻找确认的观察到的但未记录在案的IIS 7.5行为,因为我无法在MS网站上找到记录的行为。我需要一种方法来仅通过使用new Exception()抛出的自定义异常,将customErrors设置为Off,并在web.config中设置以下内容

  <httpErrors existingResponse="Auto">
  <clear/>
</httpErrors>

我根本没有在代码中使用TrySkipIisCustomErrors,但这似乎可以按需工作。系统错误的行为仍然类似于“ customErrors ='On'”,但是我的自定义异常将转到我的Ajax调用,在该调用中我对其进行解析以显示消息。 这是我的测试网络方法:

public string Update(Models.CaseData appData, Models.CaseData appDataCache)
        {

            //Test 1.  trigger system error 
            var t = 0;
            var x = 1;
            var p = x / t;

            var sendEmail = IsModified(appData, appDataCache);

            //Test 2. Throw user defined error
            if (appDataCache != null && !sendEmail)
            {
                throw new Exception("Your changes do not require sending email. Are you sure you want to save these changes?".ToJsonError(type: "confirm"));
            }
        }
  • 测试1被零除
  • 测试2是我的自定义例外。

如果我保留测试1,则会从IIS收到通用消息“处理请求时出现问题”,但是如果我将其注释掉,则来自测试2的自定义异常将转到Ajax错误处理程序。

这正是我需要IIS表现的方式,但是我不确定这种IIS行为是设计使然,还是我遇到了某种对我有利的IIS错误,有些犹豫将其交付生产。

请提供其他解决方案的建议或帮助,以仅通过自定义异常。

谢谢。

0 个答案:

没有答案