我有一些ASP.NET页面和webservice WebMethod()方法,我想添加一些常用代码。例如:
<WebMethod()> _
Public Function AddressLookup(ByVal zipCode As String) As Address
#If DEBUG Then
' Simulate a delay
System.Threading.Thread.Sleep(2000)
#End If
Return New Address()
End Function
我目前在所有的WebMethod()方法中都有#If Debug代码,但我认为必须有更好的方法来实现这一点,而无需实际输入代码。
有没有办法确定请求是否是Application_EndRequest中的WebMethod,以便我可以在项目范围内添加此延迟?
请注意,有些方法是Page方法,有些是Web服务方法。
答案 0 :(得分:1)
您可以在Application_EndRequest中检查请求URL,以确定它是否是Web方法调用。例如。这样的事情(对不起,这是在C#中):
protected void Application_EndRequest(Object sender, EventArgs e)
{
if (Request.Url.ToString().IndexOf("MyWebService.asmx") > 0)
{
// Simulate a delay
System.Threading.Thread.Sleep(2000);
}
}
答案 1 :(得分:1)
将#if DEBUG
代码封装在方法中,并使用<Conditional("DEBUG")>
进行标记。这样,您只需在每个<WebMethod>
中编写一个方法调用。可能有用。