private void initData() { xmlDoc = new XmlDocument(); xmlDoc.Load(_serverPath + "/as2aspx.xml"); XmlNode rootNode = xmlDoc.SelectSingleNode("config"); string modelUrl = rootNode.SelectSingleNode("model").InnerText; string serviceUrl = rootNode.SelectSingleNode("service").InnerText; serviceNameSpace = rootNode.SelectSingleNode("service").Attributes.GetNamedItem("nameSpace").Value; modelDLL = Assembly.LoadFrom(_serverPath + modelUrl); serviceDLL = Assembly.LoadFrom(_serverPath + serviceUrl); XmlAttributeCollection outerResolveXAC = rootNode.SelectSingleNode("outerResolve").Attributes; string outerResolveDLL = outerResolveXAC.GetNamedItem("dll").Value; string outerResolveClass = outerResolveXAC.GetNamedItem("class").Value; XmlAttributeCollection outerEncryptXAC = rootNode.SelectSingleNode("outerEncrypt").Attributes; string outerEncryptDLL = outerResolveXAC.GetNamedItem("dll").Value; string outerEncryptClass = outerResolveXAC.GetNamedItem("class").Value; if (outerResolveDLL != "" && outerResolveClass != "") { Type outerResolveType = Assembly.LoadFrom(_serverPath + outerResolveDLL).GetType(outerResolveClass); outerResolve = (IParamResolve)System.Activator.CreateInstance(outerResolveType); } if (outerEncryptDLL != "" && outerEncryptClass != "") { Type outerEncryptType = Assembly.LoadFrom(_serverPath + outerEncryptDLL).GetType(outerEncryptClass); outerEncrypt = (IParamEncrypt)System.Activator.CreateInstance(outerEncryptType); } }
protected void Page_Load(object sender, EventArgs e) { byte[] byteData = null; try { if (context == null) { context = ContextUtil.getInstance(Server.MapPath(".")); encrypt = context.getOuterEncrypt(); } if (encoder == null) encoder = ParamEncoder.getInstance(); if (decoder == null) decoder = ParamDecoder.getInstance(); encoder.outEncoder = context.getOuterResolve(); decoder.outDecoder = context.getOuterResolve(); Stream input = Request.InputStream; if (input.CanRead) { byteData = new byte[input.Length]; input.Read(byteData, 0, (int)input.Length); input.Close(); input.Dispose(); // 解密 if (encrypt != null) byteData = encrypt.decrypt(byteData); dataVo = decoder.decoder(byteData); Type serviceCls = context.getService(context.getServiceNameSpace() + "." + dataVo.ServiceName); MethodInfo method = serviceCls.GetMethod(dataVo.MethodName); object result = method.Invoke(System.Activator.CreateInstance(serviceCls), dataVo.Param); dataVo.Result = result; dataVo.ResultStatus = "success"; byte[] resultData = encoder.encode(dataVo); if (encrypt != null) resultData = encrypt.encrypt(resultData); output = Response.OutputStream; output.Write(resultData, 0, resultData.Length); output.Flush(); output.Close(); output.Dispose(); } else { } } catch(Exception exc) { if (dataVo == null && byteData != null) dataVo = decoder.decoder(byteData); if (dataVo == null) dataVo = new DataVO(); dataVo.ResultStatus = "error"; dataVo.ErrorMessage = exc.ToString(); byte[] resultData = encoder.encode(dataVo); if (encrypt != null) resultData = encrypt.encrypt(resultData); output = Response.OutputStream; output.Write(resultData, 0, resultData.Length); output.Flush(); output.Close(); output.Dispose(); } }
protected void Page_Load(object sender, EventArgs e) { byte[] byteData = null; try { if (context == null) { context = ContextUtil.getInstance(Server.MapPath(".")); encrypt = context.getOuterEncrypt(); } if (encoder == null) { encoder = ParamEncoder.getInstance(); } if (decoder == null) { decoder = ParamDecoder.getInstance(); } encoder.outEncoder = context.getOuterResolve(); decoder.outDecoder = context.getOuterResolve(); Stream input = Request.InputStream; if (input.CanRead) { byteData = new byte[input.Length]; input.Read(byteData, 0, (int)input.Length); input.Close(); input.Dispose(); // 解密 if (encrypt != null) { byteData = encrypt.decrypt(byteData); } dataVo = decoder.decoder(byteData); Type serviceCls = context.getService(context.getServiceNameSpace() + "." + dataVo.ServiceName); MethodInfo method = serviceCls.GetMethod(dataVo.MethodName); object result = method.Invoke(System.Activator.CreateInstance(serviceCls), dataVo.Param); dataVo.Result = result; dataVo.ResultStatus = "success"; byte[] resultData = encoder.encode(dataVo); if (encrypt != null) { resultData = encrypt.encrypt(resultData); } output = Response.OutputStream; output.Write(resultData, 0, resultData.Length); output.Flush(); output.Close(); output.Dispose(); } else { } } catch (Exception exc) { if (dataVo == null && byteData != null) { dataVo = decoder.decoder(byteData); } if (dataVo == null) { dataVo = new DataVO(); } dataVo.ResultStatus = "error"; dataVo.ErrorMessage = exc.ToString(); byte[] resultData = encoder.encode(dataVo); if (encrypt != null) { resultData = encrypt.encrypt(resultData); } output = Response.OutputStream; output.Write(resultData, 0, resultData.Length); output.Flush(); output.Close(); output.Dispose(); } }