Frage

Ich schrieb mein erster Web-Service läßt so die Annahme, dass meine Web-Service know nicht existent ist. Ich möchte versuchen, eine dbClass Funktion aus dem Web-Service zu anrufen. Allerdings muss ich einige params, die in der Sitzung sind. Gibt es eine Möglichkeit, diese nennt diese Session-Variablen aus dem Webservice bekommen kann ??

War es hilfreich?

Lösung

Wenn Sie Web-Services ASP.NET verwenden, und Sie möchten eine Sitzung Umgebung für Sie gewartet haben, müssen Sie Ihren Web-Service-Methode mit einem Attribut verschönern, dass Sie eine Sitzung benötigen anzeigt.

[WebMethod(EnableSession = true)]
public void MyWebService()
{
    Foo foo;
    Session["MyObjectName"] = new Foo();
    foo = Session["MyObjectName"] as Foo;
}

Sobald Sie dies getan haben, können Sie den Zugriff auf Sessions Objekte ähnlich wie aspx.

Metro.

Andere Tipps

Sie sollten vermeiden, dass die Komplexität der Serviceschicht zu erhöhen Session-Variablen hinzufügen. Als jemand zuvor darauf hingewiesen, man denke an die Web-Services als isolierte Methoden, die alle das, was benötigt wird, um die Aufgabe von ihrem Argument Liste auszuführen.

Im allgemeinen Web-Services nicht auf die Sitzungsdaten verlassen sollten. Denken Sie an sie als gewöhnliche Methoden. Parameter gehen und eine Antwort kommt aus

, wenn Sie Session [ "username"] wollen ToString (). wie in den anderen # Seiten hinter aspx C dann ersetzen Sie sollten einfach [WebMethod] über die WebService-Methode mit [WebMethod (EnableSession = true)]

Dank :) Metro

Vielleicht wird dies funktionieren HttpContext.Current.Session [ "Name] Sonst könnten Sie haben einige Parameter nehmen oder speichern sie in einer Datenbank

Ihre Frage ist ein wenig vage, aber ich werde mein Bestes versuchen, zu beantworten.

Ich gehe davon aus, dass Ihre Session-Variablen auf dem Server vorhanden, der den Webservice Anruf tätigt, und nicht auf dem Server, auf den Webdienst hostet. In diesem Fall müssen Sie die notwendigen Werte als Parameter der Web-Service-Methoden zu übergeben.

Zur Sitzung in Webservice zu nutzen haben wir 2 Schritten folgen -

  1. Verwenden [WebMethod (EnableSession = true)] Attribut für das Verfahren.
  2. Session [ "Name"] = 50 (was auch immer Sie speichern möchten) Überprüfen Sie bitte das folgende Beispiel.
[WebMethod(EnableSession = true)]  
public void saveName(string pname)  
{  
   Session["Name"] = pname;  

 }  

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top