当前位置: 首页 > news >正文

建设网站公司怎么建站/谷歌海外推广

建设网站公司怎么建站,谷歌海外推广,做一个网站都需要什么,武隆专业网站建设公司WebService一般都是走HTTP, 一般通过HttpModule拦截就可以。但是要自行编码解码,很难得到详细信息。而且WebMethod抛出的Exception被包装过,不能象普通页面一样通过Context.Error直接拿到它的错误。WebService没有直接继承CBO,要想实现AOP性质…
WebService一般都是走HTTP, 一般通过HttpModule拦截就可以。但是要自行编码解码,很难得到详细信息。而且WebMethod抛出的Exception被包装过,不能象普通页面一样通过Context.Error直接拿到它的错误。

WebService没有直接继承CBO,要想实现AOP性质的WebMethod拦截和处理,可以通过SoapExtension(Soap扩展)
Soap扩展要继承SoapExtension类,使用方式有两种:
1. 使用SoapExtensionAttribute在WebMethod前为每个方法定制标记。
2. 在Web.xml中统一标记。
<system.web>
  <webServices>
   <soapExtensionTypes>
    <add type = "Utility.LogExtension,Utility" priority="1" group="0"/>
   </soapExtensionTypes>
  </webServices>
 </system.web>

一个WebMethod中,SoapExtension.ProcessMessage()方法会被多次调用。从而得到在方法执行前后的参数,返回结果,异常。

通过拦截WebMethod, Log/Trace/Transaction控制都可以自动完成。不需要不停的try/catch了!

下面是[LogExtension]的部分:
public override void ProcessMessage(SoapMessage message)
  {
   switch (message.Stage)
   {
    case SoapMessageStage.BeforeSerialize: //can get return value
     if(message.Exception == null && message.MethodInfo.ReturnType != typeof(void))
      outValue = Convert.ToString(message.GetReturnValue());
     break;
    case SoapMessageStage.AfterSerialize: //the last step
     if (message.Exception == null)
      Log.Info(GetLog(message));
     else
      Log.Warning(GetLog(message));
     break;
    case SoapMessageStage.BeforeDeserialize:
     break;
    case SoapMessageStage.AfterDeserialize://can get parameters
     int n = message.MethodInfo.Parameters.Length;
     inParams = new string[n];
     for(int i = 0;i<n;i++)
      inParams[i] = Convert.ToString(message.GetInParameterValue(i));
     break;
    default:
     throw new Exception("invalid stage");
   }
  }

下面是[TransExtension]事务控制的部分:
public override void ProcessMessage(SoapMessage message)
  {
   switch (message.Stage)
   {
    case SoapMessageStage.BeforeSerialize: //step 3. can get return value
     if(message.Exception == null)
      DbHelper.Inst.Commit();
     else
      DbHelper.Inst.Rollback();
     DbHelper.Inst.Close();
     break;
    case SoapMessageStage.AfterSerialize: //step 4
    case SoapMessageStage.BeforeDeserialize://step 1
     break;
    case SoapMessageStage.AfterDeserialize://step 2. can get parameters
     DbHelper.Inst.BeginTransaction();
     break;
    default:
     throw new Exception("invalid stage");
   }
  }

转载于:https://www.cnblogs.com/steeven/archive/2004/04/19/6577.html

http://www.lbrq.cn/news/1556137.html

相关文章:

  • 全市政府网站建设会议/免费b站推广网站在线
  • 岳阳设计网站推荐/创建自己的网站
  • 视频投票网站怎么做/自动引流免费app
  • c 网站做微信收款功能/如何弄一个自己的网站
  • 厦门海沧网站建设/网站统计数据
  • 网站图片在手机上做多大最清晰/网盘搜索引擎
  • 重庆最新新闻5条/优化网站排名公司
  • 旅游景点/做seo需要用到什么软件
  • 网站建设的流程图示/什么是seo
  • 哪些公司做企业网站/seo网站排名优化服务
  • 网站制作手机模板/网络营销知识点
  • 快速搭建网站 优帮云/百度优化
  • 网站开发的人/商业软文怎么写
  • 做外贸最好的网站建设/今日军事新闻最新消息新闻
  • 网站管理系统后台/深圳关键词快速排名
  • 杭州网站建设杭州手机网站建设/电脑课程培训零基础
  • 泰州谁会建网站/软件制作
  • python 做网站开发吗/手机网站seo免费软件
  • 惠州双语网站建设费用/神马关键词快速排名软件
  • 做苗木比较好的网站/长沙关键词优化新行情报价
  • 网站首页菜单栏模块怎么做的/电商网站运营
  • 园区建设网站的方案/企业网络搭建方案
  • 南昌网站排名优化价格/黑帽seo之搜索引擎
  • 网站商城建设员招聘/培训心得体会总结简短
  • 域名有了怎么建网站/公司怎么推广网络营销
  • 做二手元器件那个网站查价格/代运营公司前十名
  • 手机访问网站自动跳转/东莞网络营销代运营
  • 做网站需要硬件设施/凡科建站和华为云哪个好
  • 有哪些网站可以用/seo关键词选取工具
  • 公司网站设计师/重庆人力资源和社会保障网
  • 飞算AI 3.2.0实战评测:10分钟搭建企业级RBAC权限系统
  • 当 AI 开始 “理解” 情感:情感计算技术正在改写人机交互规则
  • 《WINDOWS 环境下32位汇编语言程序设计》第2章 准备编程环境
  • 【计算机网络架构】混合型架构简介
  • 守护品质安全,防伪溯源系统打造全链路信任体系
  • AT89C52单片机介绍