ich ein Problem habe, um die beste Art und Weise zu gestalten, einen Duplex-WCF-Dienst von ASP.NET-Anwendung des Aufruf habe ich folgendes Szenario:-Update eine ASP.NET-Seite mit Duplex WCF-Service-Aufruf
1) Ich habe einen Duplex-WCF-Dienst mit einigen Operationen 2) Von einer ASP.NET-Webanwendung (die mein Client ist) mache ich die Standardseite implementieren die Callback-Schnittstelle und rufen Sie dann eine Methode aus dem Duplex-Dienst als sendend Handler des Rückrufs
3) Wenn der Rückruf zurückkehrt die default.aspx
Seite Ich konnte das Ergebnis auf der Seite nicht zeigen, weil die ganzen HttpContext
null ist, so kann ich keine Kontrolle oder Anwendung [] oder Session Zugriff [] Variablen
Hier ist der Code in der Default.aspx ist
[CallbackBehavior(UseSynchronizationContext = false)]
public partial class _Default : System.Web.UI.Page, VehicleTrackingService.IDuplexServiceCallback
{
public _Default()
{
}
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
ThreadPool.QueueUserWorkItem(new WaitCallback(delegate
{
try
{
DuplexService client = new DuplexServiceClient(new InstanceContext(new_Default()));
switch (DropDownList1.SelectedItem.Value)
{
case "0":
{
client.Method1(int.Parse(txt_name.Text));
break;
}
case "1":
{
lbl_res.Text = "Not Provided yet.";
break;
}
default:
{
lbl_res.Text = "Not Provided yet.";
break;
}
}
}
catch(Exception ex)
{
}
}));
}
public void DuplexCallbackFunction(string response)
{
// Wanna to show result (the response) from here ...
}
Hilfe bitte?
Dies ist eine etwas schlechte Wahl für die Verwendung von WCf Duplex-Services, aus der Perspektive Ihrer Kunden und architektonisch. Wenn Sie zum Abrufen von Daten eine Verbindung mit einem separaten WCF-Dienst herstellen müssen und eine Verzögerung zwischen dem Dienstanruf und der Antwort besteht, sollten Sie den Dienstanruf lieber an eine Hintergrundaufgabe übergeben und dann mit einem leichten AJAX-Aufruf von Ihrem Client abrufen für die zurückgegebenen Daten. Ihr Client verfügt über eine reaktionsfähige Benutzeroberfläche und Ihr Server verschwendet keine Ressourcen. – Lloyd
Können Sie mir bitte ein Beispiel geben, weil ich es nicht bekommen konnte – DigitalFox