[DataContract]
public class SalesRepReturn : BaseReturn
{
[DataMember]
public IEnumerable<LeadInfo> TodayAppointments { get; set; }
[DataMember]
public IEnumerable<LeadInfo> TodayKnock { get; set; }
[DataMember]
public IEnumerable<LeadInfo> OutstandingLeads { get; set; }
[DataMember]
public IEnumerable<LeadInfo> HotLeads { get; set; }
[DataMember]
public IEnumerable<LeadInfo> AssociatedLeads { get; set; }
}
[OperationContract]
[WebInvoke(Method = "POST", UriTemplate = "/SalesRepData",
RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Wrapped)]
SalesRepReturn SalesRepData(int salesRepId, float lat, float lon, int distance);
public SalesRepReturn SalesRepData(int salesRepId,float lat,float lon,int distance)
{
Stopwatch stopwatch = Stopwatch.StartNew();
Stopwatch stopwatch1 = Stopwatch.StartNew();
var salesRepReturn = new SalesRepReturn { ReturnMsg = "Enter valid representative Id", ReturnCode = 401 };
if (salesRepId == 0) return salesRepReturn;
salesRepReturn.AssociatedLeads = MapLeads(salesRepId,lat,lon,distance);
stopwatch.Stop();
LogTimeTaken(DateTime.Now.ToString() + " Time Taken for Map Leads SRD " + stopwatch.ElapsedMilliseconds.ToString());
salesRepReturn.ReturnCode = 200;
salesRepReturn.ReturnMsg = Messages.Success;
stopwatch1.Stop();
LogTimeTaken(DateTime.Now.ToString() + " Entire Method SRD " + stopwatch1.ElapsedMilliseconds.ToString());
return salesRepReturn;
}
private IEnumerable<LeadInfo> MapLeads(int salesRepId,float lat,float lon,int distance)
{
var result=_context.Database.SqlQuery<LeadInfo>("GetMappedLeadsByLatLong @salesRepId,@latitude,@longitude,@distance", new SqlParameter("salesRepId", salesRepId), new SqlParameter("latitude", lat), new SqlParameter("longitude", lon), new SqlParameter("distance", distance));
return result;
}
以上是我的WCF服务代码。你可以看到我已经添加了时间戳来获得处理时间。处理时间甚至不需要一秒钟,但邮递员的响应时间在2秒到15秒之间变化。我不知道可能是什么原因。我预计该方法需要1或2秒。响应的大小平均为40KB。为什么服务操作需要更长的时间才能返回,而不是操作中的实际代码需要执行?
这是在单个呼叫或多个并发呼叫,你得到延迟? –
@tomredfern它是一个单一的电话。 –
而且为了澄清一下,你对于为什么实际的服务操作在调用它时比实际的代码执行需要执行时花费更长时间而感到困惑? –