jquery ajax没有正确捕获c#异常

前端之家收集整理的这篇文章主要介绍了jquery ajax没有正确捕获c#异常前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
好的,我有一个生产环境的问题,以及 jquery ajax如何捕获错误.

在我的本地机器的开发环境中,当jquery ajax调用webservice [webmethod]并且webmethod引发了一个特定的错误时,jquery ajax捕获正确,但在生产环境中,jquery ajax捕获错误,但消息是通用的“有处理请求的错误“.与“内部服务器错误

例如

c#代码

[WebMethod]
public String dostuff(String Auth){
// some code here
// if error occurs
throw new Exception("Some specific error message");
return "ok";
}

jquery ajax调用

var data = JSON.stringify({ Auth: "some data here" },null);

    $.ajax({
        type: "POST",url: '/Services/memberService.asmx/dostuff',data: data,contentType: "application/json; charset=utf-8",dataType: "json",success: function (result) {
            alert(result.d); // alert ok
        },error: function (XMLHttpRequest,textStatus,errorThrown) {
            alert("responseText=" + XMLHttpRequest.responseText + "\n textStatus=" + textStatus + "\n errorThrown=" + errorThrown);
        }
    });

在我的本地机器上,XMLHttpRequest.responseText是“一些特定的错误信息”

在生产环境中,XMLHttpRequest.responseText是“处理请求时出错”.

当地的环境是Windows 7的家庭溢价与IIS 7.5.7600.16385

生产环境是Windows Server 2008 R2与IIS 7.5.7600.16385(与开发环境相同)

为什么差异和如何使生产环境抛出具体的错误

*********只是一个跟进.. tnx贾斯汀*************

我在服务文件夹里添加了web.config文件(Doh …想知道为什么我没有想到这个)

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <system.web>
      <customErrors mode="Off" />
    </system.web>
</configuration>

解决方法

默认情况下,.NET应用程序被配置为仅向本地服务器显示特定的异常信息.

这样,攻击者根据攻击者无法获取有关您网站的特定异常信息.通常认为改变这种行为是一个坏主意.

如果你必须,你可以改变:

<customErrors mode="RemoteOnly" />

至:

<customErrors mode="Off" />

如果要显示“服务”文件夹的错误

<location Path="/Services">
    <system.web>
        <customErrors mode="Off" />
    </system.web>
</location>
原文链接:https://www.f2er.com/jquery/175978.html

猜你在找的jQuery相关文章