jquery Ajax 响应文本“处理请求时出错”

问题描述 投票:0回答:3

我在 UAT 环境中收到此错误 “处理请求时出错”。在我当地,代码似乎运行良好。

这行 Utility.WriteLogEvent("TestService", strMessage); 直接写入数据库。不管怎样,如果这条线失败与否,我仍然应该能够收到来自服务器的消息,因为它被正确处理了。

但是由于我没有收到服务器的任何响应,这意味着我的 webmethod 无法访问。

鉴于下面的代码可以工作,我是否需要在 web.config 中设置任何内容才能使其工作?或者我可以在任何地方开始检查 IIS,这可以给我一些线索?

谢谢。

$('#lnkTest').click(function () {
    alert('Click event is firing!');
    $.ajax({
        type: "POST",
        url: "/_layouts/ServiceForm.aspx/TestService",
        data: "{}",
        dataType: "json",
        contentType: "application/json; charset=utf-8",
        success: function (response) {
            if (response.d && response.d.length > 0) {
                alert(response.d);
            }
        },
        error: function (xhr, err) {
            alert('responseText:' + xhr.responseText);
        }
    });
});

这是我的 C# Web 方法

[WebMethod]
public static string TestService()
{
    string strMessage = string.Empty;
    try
    {
        strMessage = "The service is running.";
        Utility.WriteLogEvent("TestService", strMessage);
    }
    catch (Exception ex)
    {
        strMessage = "TestService fail.";

    }
    return strMessage;
}
c# jquery ajax
3个回答
5
投票

对于其他在调用带有参数的 WebMethod 时可能遇到相同错误的人。

确保没有一个参数为空,因为这也会在没有适当原因的情况下引发相同的错误。提供解决方案以防止将空参数传递给客户端的方法。也许是

if statement


0
投票

我已经解决了这个问题。这是由于应用程序服务器中部署了 dll,并且被安装的防病毒软件阻止了。


0
投票

我的 Web 方法对于少量数据可以正常工作,但在使用参数调用相同 Web 方法以返回 500 行(大量数据)时收到相同的错误消息:

{"Message":"There was an error processing the request.","StackTrace":"","ExceptionType":""}

对我来说这个错误的原因是我没有在服务器的 web.config 中设置

maxJsonLength
属性。 所以我将以下几行放在 web.config 的
configuration
部分下。

  <system.web.extensions>
    <scripting>
      <webServices>
        <jsonSerialization maxJsonLength="50000000"/>
      </webServices>
    </scripting>
  </system.web.extensions>

我的错误已经解决了。

从 web.config 文件中删除上述

maxJsonLength
属性后,我在本地运行该方法并收到以下错误。

{
    "Message": "Error during serialization or deserialization using the JSON JavaScriptSerializer. The length of the string exceeds the value set on the maxJsonLength property.",
    "StackTrace": "   at System.Web.Script.Serialization.JavaScriptSerializer.Serialize(Object obj, StringBuilder output, SerializationFormat serializationFormat)\r\n   at System.Web.Script.Serialization.JavaScriptSerializer.Serialize(Object obj, SerializationFormat serializationFormat)\r\n   at System.Web.Script.Services.RestHandler.InvokeMethod(HttpContext context, WebServiceMethodData methodData, IDictionary`2 rawParams)\r\n   at System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext context, WebServiceMethodData methodData)",
    "ExceptionType": "System.InvalidOperationException"
}

因此,如果您遇到此错误,请按照上述方式在 web.config 文件中设置

maxJsonLength
属性。

© www.soinside.com 2019 - 2024. All rights reserved.