首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从web服务返回自定义对象需要很长时间,为什么?

从web服务返回自定义对象需要很长时间,为什么?
EN

Stack Overflow用户
提问于 2012-12-06 01:23:57
回答 1查看 227关注 0票数 1

当我的web服务返回一个自定义对象(只包含四个字符串、三个整数和一个布尔值)时,需要几秒钟(4-8秒)。当同一台服务器以字符串形式发送相同的信息时,它几乎是立即发送的。

自定义对象类在相同的web服务中定义,如果有关系的话。

我不认为这会有太大的不同,或者我在这里错过了一些基本的东西?

编辑:一些代码,为了便于阅读,我删除了一些变量。

在web服务中定义的自定义类:

代码语言:javascript
复制
public class AddressSearchResult
{
    public AddressSearchResult()
    {
        Address = String.Empty;
        Country = String.Empty;
    }

    public AddressSearchResult(string address, string country)
    {
        Address = address;
        Country = country;
    }

    public string Address { get; set; }
    public string Country { get; set; }
}

web服务上的两个WebMethods之间唯一的区别是返回语句:

返回obj的WebMethod1

代码语言:javascript
复制
return new AddressSearchResult((string)address["address"], (string)address["country"]);

WebMethod2只返回一个字符串(只是为了表明我在做同样的事情)

代码语言:javascript
复制
return new AddressSearchResult((string)address["address"], (string)address["country"]).Address;

接收端,控制台app:

代码语言:javascript
复制
AddressSearchResult result = adrSerWS.method1("example", "yehaa"); //THIS IS SLOW
string result2 = adrSerWS.method2("example", "yehaa"); //THIS IS FAST
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-06 03:28:08

问题可能是对web服务的第一次调用比后续调用花费的时间更长。尝试更改您在控制台应用程序中调用服务方法的顺序,看看method1是否仍然是最慢的。

为什么第一次调用会慢一些?一些想法: 1)在控制台应用程序中,进行的第一个方法调用可能会触发web服务代理中的一些初始化。这可能是您自己的代码或.NET中的其他东西。2)您可能在IIS空闲一段时间后访问web服务,因此它必须生成一个新的工作进程。3)如果你运行的是带有调试器的控制台应用程序,那么请注意,这可能会夸大最坏的性能。尝试在不使用调试器的情况下运行。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13728875

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档