2016-12-29 68 views
1

我有jQuery Ajax方法在C#代碼中調用Web方法。該代碼在本地環境中正常工作,但在服務器中不起作用。但是一些web方法和jQuery Ajax調用可以正常使用SQL語句,但是使用web方法中的存儲過程返回一些數據不起作用。它顯示一個錯誤消息作爲不能在azure服務器上工作,但在本地環境中正常工作?

{消息: 「發生錯誤處理請求。」,堆棧跟蹤: 「」,ExceptionType: 「」}
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' 
         } 
        } 
       }); 

這裏是我的Web方法:

[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; 
} 

有我需要在服務器上做任何額外的東西嗎?

+0

嗨..sorry ...是一個Azure webApp ..或Azure VM? ..你打開http端口嗎? –

+0

這是一個Azure的web應用程序...是的,我可以打開http端口.. –

+0

你打開它嗎? ..你有沒有在谷歌Chrome控制檯檢查前端的xhr請求? (如果指向正確的服務器等) –

回答

0

探索後5個小時,我終於找到了一些愚蠢的錯誤這是在我的web.config文件

<system.web.extensions> 
     <scripting> 
      <webServices> 
      <jsonSerialization maxJsonLength="2147483647"/> 
      </webServices> 
     </scripting> 
     </system.web.extensions> 

工作正常....謝謝

相關問題