C# WCF服务图书馆“;火与遗忘”;来自web应用程序

C# WCF服务图书馆“;火与遗忘”;来自web应用程序,c#,asp.net,wcf,C#,Asp.net,Wcf,我已经创建了一个WCF服务库,并在我的web应用程序(asp.net)中添加了build.dll作为引用 我也尝试了IsOneWay=true,但似乎不起作用 我试图从web应用程序中“启动并忘记”,并在我的服务方法中加入10秒钟的睡眠时间来测试它。但我的web应用程序在点击按钮时会等待10秒钟。 请指导我可能做错的事情和地方。提前谢谢 Web应用按钮单击: EmailAndSync.Service1 svc = new Service1(); svc.saveData(); 服务: [S

我已经创建了一个WCF服务库,并在我的web应用程序(asp.net)中添加了build.dll作为引用

我也尝试了IsOneWay=true,但似乎不起作用

我试图从web应用程序中“启动并忘记”,并在我的服务方法中加入10秒钟的睡眠时间来测试它。但我的web应用程序在点击按钮时会等待10秒钟。 请指导我可能做错的事情和地方。提前谢谢

Web应用按钮单击:

 EmailAndSync.Service1 svc = new Service1();
 svc.saveData();
服务:

[ServiceContract]
    public interface IService1
    {
        [OperationContract(IsOneWay = true)]
         void saveData();
    }

public class Service1 : IService1
    {
        public void saveData()
        {
            System.Threading.Thread.Sleep(10000);
            sendUsersMail("sak_user@domain.com");
        }
        protected void sendUsersMail(string emailid)
        {
        //stuff
         }
 }

使用代理调用服务,工作正常

Web应用程序代码:

public delegate void Worker();
Worker newthread;

//on button click
 newthread = new Worker(callmethod);
 newthread.BeginInvoke(null, null);

 protected void callmethod()
    {
        EmailAndSync.Service1 svc = new Service1();
        svc.saveData(0);
        newthread.EndInvoke(null);
    }

[OperationContractAttribute(AsyncPattern=true)]
用于返回void或not的方法

使用ChannelFactory时不支持事件驱动的异步调用模型。看见