【问题标题】:Send dynamic error/failed result message from server从服务器发送动态错误/失败结果消息
【发布时间】:2012-01-15 14:57:55
【问题描述】:

我在一个项目中使用 jqgrid。 并且需要知道如何在网络服务器上返回/设置错误响应以允许自定义消息。

在我的本地实例上,我得到以下结果。

但是在我们的网络服务器上部署的站点上,消息被抑制并替换为默认消息。

值得一提的是,我通过将响应状态代码设置为 500 并将描述设置为我的自定义消息来返回错误/失败结果。 (可能有更好的方法来做到这一点)

我还添加/修改了以下配置值。

<customErrors mode="On" />

<system.webServer>
       <httpErrors errorMode="Custom" >
         <remove statusCode="500" />
       </httpErrors>
</system.webServer>

有谁知道我做错了什么?或者如何让它工作:P

【问题讨论】:

    标签: jquery asp.net asp.net-mvc iis c#-4.0


    【解决方案1】:

    请试试这个,这是Custom Error Handling的更好方法

    【讨论】:

    • 我实现了这个修复,定义了一种更好的错误处理方式,但我仍然有同样的问题。状态码设置为 500,自定义消息被抑制并替换为默认错误消息
    • 您的操作过滤器事件似乎没有执行,或者在它之前处理了异常(例如在 global.asax 中的 Application_error 事件中)或者在操作过滤器之后发生了另一个异常,请验证。
    • 它正在执行...但我只是在全球范围内注意到了这一行。 public static void RegisterGlobalFilters(GlobalFilterCollection filters) { filters.Add(new HandleErrorAttribute());现在将删除它,看看它是否以某种方式覆盖了自定义错误属性
    【解决方案2】:

    我找到了解决方案。在我将 web.config 更新为

    之前
    <system.webServer>
           <httpErrors errorMode="Custom" >
             <remove statusCode="500" />
           </httpErrors>
    </system.webServer>
    

    它被设置为(这解释了为什么我首先遇到了这个问题,因为我是从远程源访问该站点)

    <system.webServer>
           <httpErrors errorMode="DetailedLocalOnly" />
    </system.webServer>
    

    改为如下

    <system.webServer>
               <httpErrors errorMode="Detailed" />
    </system.webServer>
    

    并实施 Muhammad Mudassir 的建议,似乎可以解决问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多