数限制的时间内

问题描述:

中调用我有一个ASMX Web服务这需要几个简单的类型作为输入,调用一个Oracle存储过程从中得到响应,然后通过这个响应返回给调用者。数限制的时间内

我想输入到服务,并假设它们是有效的,并且所需的操作已成功完成,我想以某种方式存储输入(以一种有效的方式,因此不会触及数据库)达成约定的时间跨度,然后拒绝任何尝试使用相同数据调用该服务,直到该时间段过期。我希望这是明确的。

因此,通过伪码的方式...

[WebMethod] 
public Response DoThings(int someInt, string someString, DateTime someDateTime) 
{ 
    if(!Stored(someInt, someString, someDateTime)) 
    { 
     var response = new OracleRepository().CallStoredProcedure(someInt, someString, someDateTime); 
     StoreInputs(someInt, someString, someDateTime); 

     return response; 
    } 
    else return Response.TryLater; 

} 

private void StoreInputs(int someInt, string someString, DateTime, someDateTime) 
    { 
    Store(int someInt, string someString, DateTime, someDateTime); 
    } 

private bool Stored(int someInt, string someString, DateTime, someDateTime) 
    { 
    //some code to find out if the data is stored 
    } 

我不是一个完整的初学者,但我很新的C#,所以不太知道从哪里开始。任何帮助将不胜感激。

谢谢。

+0

好吧,如果我理解你的问题,最好你不想击中同一数据多次服务器,看起来像[输出缓存](http://support.microsoft.com/kb/318299)给我。如果你的** someInt,someString,someDateTime **可以揭示更多,你会看到更好的答案。 – 2011-04-12 08:32:04

使用HttpContext.Current.Cache你应该能够缓存你的存储过程调用的结果,然后在下一个请求中查询它的数据,如果发现返回数据而不是做一个新的存储过程调用。

上的缓存类。新增方法对数据最大年龄看参数:http://msdn.microsoft.com/en-us/library/system.web.caching.cache.add.aspx

+0

这正是我所追求的。主席先生,非常感谢。 – Greg 2011-04-12 15:55:06