private static void cacheDocInfo(K3DataParaInfo docInfo, K3InterceptConfig busiConfig) { try { using (SqlConnection sqlconn = new SqlConnection(@"context connection=true")) { sqlconn.Open(); using (SqlCommand sqlcommCache = new SqlCommand("zz_pr_X9WebSrvBackup_Save", sqlconn)) { sqlcommCache.CommandType = CommandType.StoredProcedure; string strDocInfo = SimpleConfig.XmlSerialize <K3DataParaInfo>(docInfo, Encoding.Unicode); SqlParameter sqlparamDocInfo = new SqlParameter("@DocInfo", SqlDbType.Xml, 5000); sqlparamDocInfo.Value = strDocInfo; SqlParameter sqlparamUrl = new SqlParameter("@Url", SqlDbType.NVarChar, 100); sqlparamUrl.Value = string.Format("http://{0}", busiConfig.ServiceAddress); sqlcommCache.Parameters.Add(sqlparamDocInfo); sqlcommCache.Parameters.Add(sqlparamUrl); sqlcommCache.ExecuteNonQuery(); } } } catch (Exception ex) { //throw new RankException(string.Format("暂存DocInfo存储异常:{0}", string.Empty), ex); //MessageBox.Show(string.Format("{0}\t暂存DocInfo存储异常:{1}", Environment.NewLine, ex.Message)); throw new Exception(string.Format("{0}\t暂存DocInfo存储异常:{1}", Environment.NewLine, ex.Message), ex); } }
private static ResultInfo defaultEventHandle(K3DataParaInfo docInfo, K3InterceptConfig busiConfig) { SqlPipe pipe = SqlContext.Pipe; try { pipe.Send("defaultEventHandle"); string strRlt = string.Empty; //WindowsIdentity windowsIdentity = null; //WindowsImpersonationContext userImpersonated = null; //windowsIdentity = SqlContext.WindowsIdentity; //// Switch the context to local service account user (a domain user) //// by getting its identity in order to call the web service //userImpersonated = windowsIdentity.Impersonate(); //if (userImpersonated != null) //{ // // Create the instance of a web service to be called. // Remember this is not actual // CAAT search web service but a similar fake web service just for testing. // pipe.Send("create service"); // X9WebService.WebService svValidateBM = new X9WebService.WebService(); // pipe.Send("end service"); // svValidateBM.Url = string.Format("http://{0}", busiConfig.ServiceAddress); // string strDocInfo = SimpleConfig.XmlSerialize<K3DataParaInfo>(docInfo, Encoding.Unicode); // pipe.Send(strDocInfo); // // Execute the web service and get the IEnumerable type results // strRlt = svValidateBM.SynchBillFromK3ToX9(strDocInfo); // // Switch the context back to the SQL Server // userImpersonated.Undo(); //} //else //{ // pipe.Send("userImpersonated is null"); //} X9WebService.WebService svValidateBM = new X9WebService.WebService(); svValidateBM.Url = string.Format("http://{0}", busiConfig.ServiceAddress); string strDocInfo = SimpleConfig.XmlSerialize <K3DataParaInfo>(docInfo, Encoding.Unicode); pipe.Send(strDocInfo); //string strHttpEncoding = HttpUtility.HtmlEncode(strDocInfo); strRlt = svValidateBM.SynchBillFromK3ToX9(strDocInfo); if (!string.IsNullOrEmpty(strRlt)) { pipe.Send(strRlt); //strRlt = strRlt.Replace(" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"", ""); //string strHttpDecoding = HttpUtility.HtmlDecode(strRlt); ResultInfo rltInfo = SimpleConfig.XmlDeserialize <ResultInfo>(strRlt, Encoding.Unicode); return(rltInfo); } return(null); } catch (Exception ex) { //LogInfoHelp.infoLog(eventName, docInfo, string.Format("调用X9系统服务时,异常:{0}", ex.Message)); pipe.Send(string.Format("Exception cacheDocInfo:{0}", ex.Message)); cacheDocInfo(docInfo, busiConfig); return(null); } }