2016-07-21 5 views
-1

Ich habe eine WCF-Service-Bibliothek erstellt und integrierte DLL als Verweis in meiner Webanwendung (asp.net) hinzugefügt.WCF-Service-Bibliothek "Fire and Forget" von Webanwendung

Ich habe versucht, IsOneWay = True aber sieht aus wie es nicht funktioniert.

Ich versuchte "Fire and Forget" von Web-Anwendung und legte einige 10 Sekunden Schlaf in meine Service-Methode, um es zu testen. Aber meine Web-App wartet 10 Sekunden auf Knopfdruck. Bitte führen Sie, was und wo ich falsch machen könnte. Danke im Voraus.

Web App Button-Klick:

EmailAndSync.Service1 svc = new Service1(); 
svc.saveData(); 

Service:

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

public class Service1 : IService1 
    { 
     public void saveData() 
     { 
      System.Threading.Thread.Sleep(10000); 
      sendUsersMail("[email protected]"); 
     } 
     protected void sendUsersMail(string emailid) 
     { 
     //stuff 
     } 
} 

Antwort

0

Delegate verwendet, um den Service zu rufen und das funktionierte reibungslos. App-Code

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); 
    }