簡體   English   中英

Ajax調用產生內部服務器錯誤500

[英]Ajax call produces Internal Server Error 500

我在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設置嗎?

是的,您應該在<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" />可能不是必需的,這取決於托管代碼的計算機是否在machine.config將此值設置為true 如果是這樣,它將覆蓋web.config中的其他customErrors設置。 盡管不太可能,但我添加它只是為了安全起見。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM