C# WCF服务图书馆“;火与遗忘”;来自web应用程序
我已经创建了一个WCF服务库,并在我的web应用程序(asp.net)中添加了build.dll作为引用 我也尝试了IsOneWay=true,但似乎不起作用 我试图从web应用程序中“启动并忘记”,并在我的服务方法中加入10秒钟的睡眠时间来测试它。但我的web应用程序在点击按钮时会等待10秒钟。 请指导我可能做错的事情和地方。提前谢谢 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
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时不支持事件驱动的异步调用模型。看见