当前位置: 代码迷 >> Web Service >> 耗费在哪里
  详细解决方案

耗费在哪里

热度:178   发布时间:2016-05-02 02:17:45.0
消耗在哪里?
最近发现生产上的webservice有一块时间消耗始终找不到原因,哪位大牛有了解内情的还望点拨一二。

webservice接口xxx.asmx,对应代码:

 [WebService(Namespace = "http://xxx.com/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [ToolboxItem(false)]
    public class xxx: System.Web.Services.WebService
    {
        [WebMethod(EnableSession = true)]
        public string Request(string requestXML)
        {
           //以下是接口服务的具体逻辑。现在发现从客户端请求到当前位置,需要消耗将近500ms,有时将近2s
            BaseTransaction transaction = TransactionFactory.CreateTransaction(EnunCallFunction.xxx);
            return transaction.ImplementRequest(requestXML);
        }       
    
    }

而且还有一个现象是,请求的客户如果是国内的,消耗时间最少的1~2ms,国外的会有上百毫秒甚至几秒。

PS:我们自己有个框架,可以记录下请求过程中每个节点的消耗情况。


------解决思路----------------------
我有时真的不明白,为什么要使用又大又慢的 webservice/wcf 呢?至少在我最近6年紧密服务过的3个公司(两个全职、1个兼职),我所见到的那些项目经理和高级程序员,基本上是因为通讯方面在技术上只是“会一点儿”而脑筋里总是闪现webservice/wcf 的,因此我在项目规划中都是考虑到“初学者、练手、进入时稍微快一点”而使用wcf,我在半年之后就会重新把网关部分修改为直接访问 ashx (或者我们的windows service提供的类似访问)的轻量级形式。
------解决思路----------------------
在楼上的意见加入补充,webapi也是一个好的选择。
------解决思路----------------------
估计是序列化出问题.你试编译相关的类时,选择 生成序列化相关集 试试看.

------解决思路----------------------
引用:
我有时真的不明白,为什么要使用又大又慢的 webservice/wcf 呢?至少在我最近6年紧密服务过的3个公司(两个全职、1个兼职),我所见到的那些项目经理和高级程序员,基本上是因为通讯方面在技术上只是“会一点儿”而脑筋里总是闪现webservice/wcf 的,因此我在项目规划中都是考虑到“初学者、练手、进入时稍微快一点”而使用wcf,我在半年之后就会重新把网关部分修改为直接访问 ashx (或者我们的windows service提供的类似访问)的轻量级形式。

WCF,WEBSERVICES,WEB API .只是适用不同的场合.只要愿意,自己用SOCK实现一个也可以.都是无可厚非的.
对于企业应用,WCF/WEBSERIVCES无论从开发周期,功能和其它如并发方面来说,都可以达到要求.
如果要面向多APP,要兼容其它移动设备,这时才选择WEB API.但这时,我宁愿为这些移动设备做一套 WEB API.
------解决思路----------------------
WEB API 如果要深入地写.功夫要比WCF多得多.复杂得多.非你们想象中的 ...?PAR=1#2#4 这么简单.
任何企业的应用,都要求有 数据要有保证,要加密,要事务,并发..等等.一扯上这一头.WEB API 就算是会飞,也飞不过WCF.
  相关解决方案