【发布时间】:2016-12-29 09:49:29
【问题描述】:
我有 jQuery Ajax 方法可以在 C# 代码中调用 Web 方法。该代码在本地环境中运行良好,但在服务器中不起作用。但是一些 web 方法和 jQuery Ajax 调用在普通的 SQL 语句中可以正常工作,但是对于返回一些数据的 web 方法中的存储过程它不起作用。它显示一条错误消息为
{Message: "处理请求时出错。",StackTrace:"", ExceptionType: ""}
异常类型:""
消息:“处理请求时出错。”
堆栈跟踪:“”
这是我的 Ajax 调用...
$.ajax({
url: "AutoRFQ_Vendors_SP.aspx/BindGrid"
, type: "POST"
, data: JSON.stringify(objdrpdata)
, contentType: "application/json;"
, success: function (data) {
$body.removeClass("loading");
var vendorsource = {
datatype: "json"
, localdata: data.d
, datafields: [
{
name: 'CommonMakerNameDisplay'
}
, {
name: 'EqpExtendType'
}
, {
name: 'CommonMakerName'
}
, {
name: 'IsForAutoRFQ'
}
, {
name: 'VendorName'
}
, {
name: 'CurrencyCode'
}
, {
name: 'Proc_Vendors_AllowedCurrencyID'
}
, {
name: 'SortCode'
}
, {
name: 'xSortCode'
}
, {
name: 'IsTitle'
}
, {
name: 'NoOfRFQs'
}
, {
name: 'NoOfOrders'
}
, {
name: 'TotalPOAmtInUSD'
}
}
});
这是我的网络方法:
[WebMethod(EnableSession = true)]
public static string BindGrid(string vslFilter, string yearFilter, string eqpmtFilter)
{
DataTable dt = null;
string gridvendorlist = "";
try
{
if (HttpContext.Current.Session["P_Hub_AutoRFQVendorDataTable"] == null || (string) HttpContext.Current.Session["P_Hub_AutoRFQVslFilter"] != vslFilter || (string) HttpContext.Current.Session["P_Hub_AutoRFQYearFilter"] != yearFilter || (string) HttpContext.Current.Session["P_Hub_AutoRFQEqpmtFilter"] != eqpmtFilter)
{
string vslFilterType = "", vslFilterValue = "";
if (vslFilter.Length == 3)
vslFilter = "VSL-" + vslFilter;
string[] vslType = vslFilter.Trim().Split('-');
if (vslType[0].ToString().Trim().ToUpper() == "VSL")
{
vslFilterType = "VSL";
vslFilterValue = vslType[1].ToString();
}
else if (vslFilter != "-1")
{
vslFilterType = "Group";
vslFilterValue = vslFilter.ToString();
}
string spName = "W_Enh_CommonMakers_RFQVendors";
string[] paramField = { "@CompanyCode", "@VslFilterType",
"@VslFilterValue", "@NoOfYrToShow",
"@EQ_EquipmentID" };
object[] paramValue = { GenFuncs.COMPANYCODE,
vslFilterType,
vslFilterValue,
yearFilter,
eqpmtFilter };
dt = DBFuncs.dbExecuteSP(spName, paramField, paramValue);
HttpContext.Current.Session["P_Hub_AutoRFQVendorDataTable"] = dt;
HttpContext.Current.Session["P_Hub_AutoRFQVendorSelectedRowIndex"] = null;
HttpContext.Current.Session["P_Hub_AutoRFQ_ScrollIndex"] = null;
HttpContext.Current.Session["P_Hub_AutoRFQVslFilter"] = vslFilter;
HttpContext.Current.Session["P_Hub_AutoRFQYearFilter"] = yearFilter;
HttpContext.Current.Session["P_Hub_AutoRFQEqpmtFilter"] = eqpmtFilter;
gridvendorlist = Func_Ajax.GetJson(dt);
}
else
{
dt = (DataTable)HttpContext.Current.Session["P_Hub_AutoRFQVendorDataTable"];
gridvendorlist = Func_Ajax.GetJson(dt);
}
}
catch (Exception err)
{
GenFuncs.AddToErrLog("-1", "xxx", "Error", err.Message, Path.GetFileName(HttpContext.Current.Request.PhysicalPath), "BindGrid");
}
finally
{
dt = null;
}
return gridvendorlist;
}
我需要在服务器中做任何额外的事情吗?
【问题讨论】:
-
嗨 ..sorry ... 是 Azure webApp .. 还是 Azure VM? ..你打开http端口了吗?
-
是的,它是一个 Azure webApp ...是的,我可以打开 http 端口..
-
你打开了吗? ..你有没有在谷歌浏览器控制台中检查你前端的 xhr 请求? (如果指向正确的服务器等)
-
是的,它只指向我正确的服务器
-
尝试激活错误 .with customError=off in web config
标签: c# jquery asp.net ajax azure-web-app-service