Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET触发并忘记(单向)Web服务_C#_Asp.net_Asynchronous_Service - Fatal编程技术网

C# ASP.NET触发并忘记(单向)Web服务

C# ASP.NET触发并忘记(单向)Web服务,c#,asp.net,asynchronous,service,C#,Asp.net,Asynchronous,Service,我在ASP.NET中创建了一个常规的旧ASMX web服务,并在函数调用中添加了SoapDocumentMethod(OneWay=true)],正如我所读到的,这应该使调用异步。然而,我在代码中调用它,它肯定不会使调用异步,我的页面只是坐在那里等待函数完成工作。有什么好处 [SoapDocumentMethod(OneWay = true)] [WebMethod(EnableSession = true)] public void UpdateAccounts() { //do work

我在ASP.NET中创建了一个常规的旧ASMX web服务,并在函数调用中添加了SoapDocumentMethod(OneWay=true)],正如我所读到的,这应该使调用异步。然而,我在代码中调用它,它肯定不会使调用异步,我的页面只是坐在那里等待函数完成工作。有什么好处

[SoapDocumentMethod(OneWay = true)]
[WebMethod(EnableSession = true)]
public void UpdateAccounts()
{
 //do work
}

//call the function
GlobalServices service = new GlobalServices();
service .UpdateAccounts()

您仍然必须使用Async方法进行调用。在这种情况下,您应该调用
service.UpdateAccountsAsync()

是否返回值?OneWay的文档声明“fire and forget”web方法不能返回值或具有out参数


除了OneWay的文档说明web服务将在执行服务方法之前立即返回HTTP状态代码202之外,因此我认为使服务函数异步化不会有什么帮助。这是我对它如何工作或应该如何工作的理解。不,不返回任何内容。请尝试删除函数,然后查看web服务是否返回。如果是这样的话,那么我想您确实需要异步启动您的服务功能,正如Erich所说。我唯一能想到的是,“EnableSession”属性以某种方式干扰了异步行为。试着把它也去掉。