[英]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.