我正在调用一个标记为单向的ASP.NET Web服务。我在try catch块中包装了调用Web服务的代码,但它没有捕获Web服务抛出的异常。当我通过在浏览器中输入url来单独测试webservice时,它会抛出一个错误,但由于某种原因,异常不会发送到调用代码。这是示例代码
/// <summary>
/// Summary description for WebService
/// </summary>
[WebService(Namespace = "http://mycompany.com/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ToolboxItem(false)]
public class TestWebService : System.Web.Services.WebService
{
[SoapDocumentMethod(OneWay = true)]
[WebMethod(Description="Start a long running process.")]
public void LongRunningProcess()
{
//do some long process
}
}
//calls proxy class method
TestWebService testWebService = new TestWebService();
testWebService.Timeout = Timeout.Infinite;
testWebService.Credentials = CredentialCache.DefaultCredentials;
testWebService.Url = <url> //the web service url
testWebService.LongRunningProcess()
任何帮助将不胜感激。
答案 0 :(得分:2)
我不相信你可以。
说明方法的全部意义在于将其标记为“即发即忘”,客户端不必等待调用该方法。
一旦服务器解析了请求,并且经常在它实际调用该方法之前,它就会返回http 202,此时客户端会继续运行。