несоответствие данных ответа веб-службы на множественный запрос - PullRequest
0 голосов
/ 29 ноября 2018

У нас есть веб-сервис для мобильного приложения, и он работал нормально, пока мы не сменили сервер.Недавно мы переместили наш сервер на платформу VM Azure и SQL MI, после чего мы столкнулись с проблемой в ответе веб-службы.Один ответ веб-службы неверно сопоставляется с ответом другого запроса, например, когда пользователь 1 нажимает на веб-службу с соответствующим значением Id и в то же время пользователь 2 сталкивается со своим идентификатором, тогда пользователь 1 и пользователь 2 получают одинаковый ответ либо user1, либо user2.Эта проблемавстречается только 10 из 200 попаданий ок.Пожалуйста, предложите мне, если что-то не так или где ошибка сделала.ниже приведен код (здесь я включил несколько журналов для поиска ответа)

В соответствии с приведенной ниже функцией «GetJobAssignmentDetails_fhits» номер «Model_No» является значением первичного ключа для получения соответствующих сведений о пользователе.Эта функция используется для получения деталей, подобных вышеупомянутым (custid, address et.,) Для соответствующего пользователя.

Мы также проверяем угол наклона мобильного устройства, но, похоже, в мобильном приложении нет проблем, потому что мы использовали браузер для доступа к веб-сервису с соответствующим параметром с помощью wsdl, а сам ответ неправильный.Раньше мы постоянно обращались к веб-службе через браузер с уникальным значением параметра 2 разных пользователей на рабочем столе, и там мы сами получали один и тот же ответ в каждый момент времени.

Ниже приведен код,

public class JobSeq {
    private string sJobCode;
    private string sCustCode;
    private string sCustName;
    private string sContactPerson;
    private string sContactNo;
    private string sCustAddress;
    private int sJSno;
    [System.Xml.Serialization.XmlElementAttribute]
    public int JSno {
        get {
            return sJSno;
        }
        set {
            sJSno = value;
        }
    }
    //Job Code
    [System.Xml.Serialization.XmlElementAttribute]
    public string JobCode {
        get {
            return sJobCode;
        }
        set {
            sJobCode = value;
        }
    }
    //Customer Code
    [System.Xml.Serialization.XmlElementAttribute]
    public string CustomerCode {
        get {
            return sCustCode;
        }
        set {
            sCustCode = value;
        }
    }
    //Customer Name
    [System.Xml.Serialization.XmlElementAttribute]
    public string CustomerName {
        get {
            return sCustName;
        }
        set {
            sCustName = value;
        }
    }
    //Customer Address
    [System.Xml.Serialization.XmlElementAttribute]
    public string Address {
        get {
            return sCustAddress;
        }
        set {
            sCustAddress = value;
        }
    }
    //Contact Person
    [System.Xml.Serialization.XmlElementAttribute]
    public string ContactPerson {
        get {
            return sContactPerson;
        }
        set {
            sContactPerson = value;
        }
    }
    //Contact No
    [System.Xml.Serialization.XmlElementAttribute]
    public string ContactNo {
        get {
            return sContactNo;
        }
        set {
            sContactNo = value;
        }
    } [System.Xml.Serialization.XmlElementAttribute]
    public string RowCount {
        get;
        set;
    } [System.Xml.Serialization.XmlElementAttribute]
    public string TotRowCount {
        get;
        set;
    } [System.Xml.Serialization.XmlElementAttribute]
    public string NewJob {
        get;
        set;
    } [System.Xml.Serialization.XmlElementAttribute]
    public string Accecptjob {
        get;
        set;
    }
} [WebMethod(Description = "Testing", CacheDuration = 0, EnableSession = false)]
public JobDetails_Test GetJobAssignmentDetails_fhits(string Model_No, bool isHistory, string utcStTime, string utcEndTime, string currLatLng, int PageNo, int RowCount, bool isNewjob) {
    // Trinetra_App.BAL.Configurations objC = new Trinetra_App.BAL.Configurations();
    DateTime dtStTime = DateTime.Now;
    ModelNumber = Model_No.ToString();
    DataSet ds = new DataSet();
    SqlConnection conn = new SqlConnection(ConfigurationManager.AppSettings["ConString"].ToString());
    SqlCommand command = new SqlCommand();
    command.CommandType = CommandType.StoredProcedure;
    command.CommandText = "rvlf_sp_GetDetails1";
    command.Connection = conn;
    DataTable dtTable = new DataTable();
    JobDetails_Test objJobDetails_std1 = new JobDetails_Test();
    Hashtable param_std1 = new Hashtable();
    try {
        param_std1.Add("@cModelCode", Model_No);
        command.Parameters.AddWithValue("@cModelCode", Model_No);
        if (isHistory == true) {
            command.Parameters.AddWithValue("@bIsHistory", "1");
            command.Parameters.AddWithValue("@dStDate", utcStTime);
            command.Parameters.AddWithValue("@dEndDate", utcEndTime);
            param_std1.Add("@bIsHistory", "1");
            param_std1.Add("@dStDate", utcStTime);
            param_std1.Add("@dEndDate", utcEndTime);
        }
        else {
            command.Parameters.AddWithValue("@cCurrLatLng", currLatLng);
            command.Parameters.AddWithValue("@Isnewjob", isNewjob);
            param_std1.Add("@cCurrLatLng", currLatLng);
            param_std1.Add("@Isnewjob", isNewjob);
        }
        //ds = objC.ExecuteDataSet(param_std1, "rvlf_sp_GetJobDetails1", true);
        SqlDataAdapter adapter = new SqlDataAdapter();
        adapter.SelectCommand = command;
        adapter.Fill(ds);
        if (ds.Tables.Count != 0) {
            if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0) {
                StringWriter sw = new StringWriter();
                ds.WriteXml(sw, XmlWriteMode.IgnoreSchema);
                List < JobSeq > objJobAssignment_std1 = new List < JobSeq > ();
                PagedDataSource objPds = new PagedDataSource();
                objPds.DataSource = ds.Tables[0].DefaultView;
                objPds.AllowPaging = true;
                objPds.PageSize = RowCount;
                objPds.CurrentPageIndex = PageNo - 1;
                foreach(DataRow item in ds.Tables[0].Rows) {
                    JobSeq objJobSeq = new JobSeq();
                    objJobSeq.JobCode = item["JobCode"].ToString();
                    objJobSeq.JSno = Convert.ToInt32(item["Sno"].ToString());
                    objJobSeq.CustomerCode = item["CustId"].ToString();
                    objJobSeq.CustomerName = item["CustName"].ToString();
                    objJobSeq.Address = item["CustomerAddress"].ToString();
                    objJobSeq.ContactPerson = item["ContactPerson"].ToString();
                    objJobSeq.ContactNo = item["Phone"].ToString();
                    if (isHistory) {
                        objJobSeq.SignatureBytes = new byte[] {};
                        objJobSeq.AttachmentBytes = new byte[] {};
                    }
                    objJobAssignment_std1.Add(objJobSeq);
                }
                objJobDetails_std1.Assignment = objJobAssignment_std1;
                if (ds.Tables[1] != null && ds.Tables[1].Rows.Count > 0) {
                    objJobDetails_std1.NewJob = Convert.ToInt32(ds.Tables[1].Rows[0]["NewJob"].ToString());
                    objJobDetails_std1.Accecptjob = Convert.ToInt32(ds.Tables[1].Rows[0]["Accecptjob"].ToString());
                }
                else {
                    objJobDetails_std1.NewJob = 0;
                    objJobDetails_std1.Accecptjob = 0;
                }
                objJobDetails_std1.Response_Status = "Success";
            }
            else {
                objJobDetails_std1.Response_Status = "Data not available";
            }
        }
        else {
            objJobDetails_std1.Response_Status = "Data not available";
        }
    }
    catch(Exception ex) {
        objJobDetails_std1.Response_Status = ex.Message.ToString();
        StackFrame stackFrame = new StackFrame();
        MethodBase methodBase = stackFrame.GetMethod();
        ModelNumber = string.Empty;
    }
    finally {
        param_std1.Clear();
        param_std1 = null;
        ds.Dispose();
        ds = null;
    }
    return objJobDetails_std1;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...