【发布时间】:2013-03-13 10:27:19
【问题描述】:
前言:我知道有很多类似的问题,但没有一个对我有帮助。
我有点纠结。
我有一个 ASP.NET 应用程序,它使用 $.ajax 调用将一些数据返回到页面。我在 3 个不同的应用程序服务器上都有这个,它们都是 Windows Server 2003。
我没有在本地运行它,它在 3 个 Web 应用程序服务器上。 2 个有效,1 个无效。
此调用在开发服务器、开发测试服务器上完美运行,但在生产服务器上失败。我在 Chrome 中检查了控制台,发现在我的开发和开发测试环境中,ajax 调用返回application/json,但在生产环境中返回text/html。此外,在我的开发和开发测试服务器上,一切正常,我得到了它应该返回的 json,但在生产中,我得到了 200 OK,但它返回整个调用页面 html 并执行我的 ajax 的错误函数称呼。
这是我的 ajax 调用:
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "RequestDetail.aspx/postAsync",
data: "{'reqSystem': '" + $('#ctl00_PlaceHolderMain_lblRequestSystem').text() + "', 'vendorNumber': '" + $('#ctl00_PlaceHolderMain_txtVendorNo').val() + "'}",
dataType: "json",
success: AjaxSucceeded,
error: AjaxFailed
});
下面是代码:
<System.Web.Services.WebMethod()> _
Public Shared Function postAsync(ByVal reqSystem As String, ByVal vendorNumber As String) As String
Dim required = CheckForSpecialApproval(reqSystem, vendorNumber)
Return required.ToString()
End Function
这是我在生产版 Chrome 的控制台中看到的内容:
这就是 Dev 上的样子:
我在生产服务器上检查了 IIS 中的 mime 类型,但 javascript 和 json 的 mime 类型不存在,因此我必须创建它们,但它仍然无法正常工作。我用谷歌搜索了这个问题,我无法弄清楚问题是什么。
如果您需要任何其他信息,我很乐意提供。
请帮忙。
提前致谢。
【问题讨论】:
-
是的,我在所有 3 台服务器上都使用标准 IIS6。
-
添加mime-type后是否重启了IIS?
-
我做到了。不过,此应用程序在两台生产服务器之间进行负载平衡,因此我必须将其添加到两台服务器上,并在两台服务器上重新启动 IIS。是否可能需要重新启动服务器?