ASP.NET运行页面时Web服务器返回500内部服务器错误如何解决
问题排查与修复方案
1. 后端VB.NET代码语法错误
你写的return = "<span class='aaa'>12</span>"不符合VB.NET语法规范,是触发500错误的核心原因。
VB.NET中Shared Function返回值的正确写法如下:
<WebMethod()> _ Public Shared Function getMonat(Kunde As String, Monat As String) As String ' 直接用Return关键字返回值即可 Return "<span class='aaa'>12</span>" End Function
2. 前端AJAX传参格式错误
你手写的参数是用单引号包裹键的字符串,不符合严格JSON格式要求,部分IIS/ASP.NET版本会因为无法解析参数抛出500错误,推荐用JSON.stringify序列化对象生成标准JSON:
$('#ddMonat').change(function () { $.ajax({ type: "POST", url: "ajaxAufrufe.aspx/getMonat", // 替换手写字符串为标准序列化 data: JSON.stringify({Kunde:'xxx', Monat:'1'}), dataType: "json", contentType: "application/json; charset=utf-8", success: function (data) { $(".kalender").append(data.d); }, error: function (xhr) { // responseText是字符串,需要先转JSON对象才能取属性 var r = JSON.parse(xhr.responseText); var errorMessage = r.Message; alert(errorMessage); } }); });
3. 额外检查项
- 确认
ajaxAufrufe.aspx页面没有特殊权限限制,WebMethod所在类是公开可访问的 - 确认项目路由配置没有屏蔽
.aspx后缀的接口请求 - 确认IIS的ASP.NET运行版本和项目编译版本一致
内容的提问来源于stack exchange,提问作者trashman2001
相关产品推荐
相关产品推荐

