当前位置:首页 > 在ASP.NET Atlas中调用Web Service—应用Cache减小服务器开销

在ASP.NET Atlas中调用Web Service—应用Cache减小服务器开销

点击次数:1681  更新日期:2010-12-24
\n

对于一些复杂的,需要较长时间完成,并且对实时性要求不是很高的服务,选择Cache往往是一个有效的提高效率的方法。.NET的Web Service实现充分考虑了对Cache的需求,您只需要简单的设定即可启用Cache。Atlas中对Web Service的调用也可以利用这一Cache机制,以减少服务器端不必要的开销。
\n

  要启用Web Service的Cache,您只需要在WebMethod的声明中添加如下属性:


\n

[WebMethod(CacheDuration = 5)]


\n

  其中CacheDuration的值代表Cache的时间,单位为秒。


\n

  但这种Cache的方法是Web Service提供的,Atlas对此一无所知,每次调用还是被发送给服务器。所以对于网络上延迟对用户的影响,这种Cache没有办法改善。


\n

  让我们通过一个示例程序进一步了解Web Service的Cache。


\n

  首先编写一个Web Service,返回当前时间,并指定CacheDuration为5秒:


\n

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class CachedWebService : System.Web.Services.WebService
{
[WebMethod(CacheDuration = 5)]
public DateTime GetGurrentTime()
{
return DateTime.Now;
}
}


\n

  然后创建一个Atlas页面,添加ScriptManager并在其中引用这个Web Service:


\n






\n

  再添加一些HTML标记用来调用这个Web Service并且显示结果:


\n

<INPUT id=btnInvoke type=button value=Invoke onclick=”return btnInvoke_onclick()” />

\n


\n