Ajax调用产生内部服务器错误500

时间:2014-12-09 19:56:01

标签: asp.net ajax web-services

我的ASP.NET网站中有以下代码,单击按钮时只显示“Hello World”:

ASPX文件:

          $.ajax({
                 type: "POST",
                 url: "WebService1.asmx/HelloWorld",
                 data: "{}",
                 contentType: "application/json; charset=utf-8",
                 dataType: "json",
                 success: function (response)
                 {
                     alert(response.d);
                 },
                 error: function (response) {
                     alert(response.d);
                 }
            });

文件背后的.CS代码:

     /// <summary>
     /// Summary description for WebService1
     /// </summary>
     [WebService(Namespace = "http://tempuri.org/")]
     [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
     [System.ComponentModel.ToolboxItem(false)]
     [System.Web.Script.Services.ScriptService]
     public class WebService1 : System.Web.Services.WebService
     {

         [WebMethod]
         public string HelloWorld()
         {
             return "Hello World";
         }
     }

只要它在我的PC上本地运行(从Visual Studio Debugger启动),但是当我从我的托管公司将我的网站部署到实时服务器时它无法正常工作。

我使用Chrome调试工具查看ajax错误功能中的响应,它显示我收到“内部服务器错误500

我不确定会出现什么问题,因为它在本地运行但在实时服务器上运行。是否有我必须使用的Web.Config设置?

1 个答案:

答案 0 :(得分:0)

是的,您应该在<configuration>

下添加以下web.config
<system.webServer>
    <httpErrors errorMode="Detailed" />
    <asp scriptErrorSentToBrowser="true"/>
</system.webServer>
<system.web>
    <customErrors mode="Off"/>
    <compilation debug="true"/>
    <deployment retail="false" />
</system.web>

您的代码会生成一个运行时错误,而且它似乎并非来自您发布的代码。在正确的位置添加上述代码段将帮助您追踪根本原因。

请注意,<deployment retail="false" />可能是不必要的,这取决于托管代码的计算机是否将此值设置为true machine.config。如果是这样,它将覆盖web.config中的其他customErrors设置。虽然不太可能,但我只是为了安全起见而添加它。