Heim >Backend-Entwicklung >C#.Net-Tutorial >So verwenden Sie den Sitzungsstatus (ASP.Net Web Services)

So verwenden Sie den Sitzungsstatus (ASP.Net Web Services)

Y2J
Y2JOriginal
2017-04-18 17:55:261409Durchsuche

Um das Sitzungsobjekt in ASP.NET in Webdiensten zu verwenden, müssen zwei Dinge getan werden.

1. Die WebService-Klasse muss die System.Web.Services.WebService-Klasse erben

2. Der EnableSession-Attributwert in WebMethod sollte auf true gesetzt sein

So verwenden Sie den Sitzungsstatus (ASP.Net Web Services)

Wenn wir uns unsere CalculatorWebService-Klasse ansehen, können wir sehen, dass sie die System.Web.Services.WebService-Klasse geerbt hat. Allerdings muss der Eigenschaftswert „EnableSession“ auf „true“ gesetzt sein.

In diesem Artikel werden wir versuchen, ein Sitzungsobjekt in einer GridView zu verwenden, wie unten gezeigt, um die neuesten Berechnungsergebnisse anzuzeigen

So verwenden Sie den Sitzungsstatus (ASP.Net Web Services)

Um dies zu erreichen Dies Der Zweck besteht darin, zunächst an Folgendes zu denken: Ändern Sie die Add-Methode der CalculatorWebService-Klasse.

[WebMethod(EnableSession = true)]
        public int Add(int firstNumber, int secondNumber)
        {
            List<string> calculations;

            if (Session["CALCULATIONS"] == null)
            {
                calculations = new List<string>();
            }
            else
            {
                calculations = (List<string>)Session["CALCULATIONS"];
            }
            
            string strTransaction = firstNumber.ToString() + " + " 
                + secondNumber.ToString() 
                + " = " + (firstNumber + secondNumber).ToString();
            calculations.Add(strTransaction);
            Session["CALCULATIONS"] = calculations;

            return firstNumber + secondNumber;
        }

So verwenden Sie den Sitzungsstatus (ASP.Net Web Services)

Führen Sie dann eine weitere öffentliche Methode ein, um alle Berechnungsergebnisse zurückzugeben Verwenden Sie das WebMethod-Attribut, um diese Methode zu dekorieren, und setzen Sie das EnableSession-Attribut auf true.

[WebMethod(EnableSession = true)]
        public List<string> GetCalculations()
        {
            if (Session["CALCULATIONS"] == null)
            {
                List<string> calculations = new List<string>();
                calculations.Add("You have not performed any calculations");
                return calculations;
            }
            else
            {
                return (List<string>)Session["CALCULATIONS"];
            }
        }

So verwenden Sie den Sitzungsstatus (ASP.Net Web Services)

Jetzt können wir unsere Lösung erstellen und im Browser unseres Webdienstes anzeigen.

So verwenden Sie den Sitzungsstatus (ASP.Net Web Services)

Der Webdienst listet zwei Methoden auf: „Hinzufügen“ und „GetCalculations“.

So verwenden Sie den Sitzungsstatus (ASP.Net Web Services)

Klicken Sie auf Methode hinzufügen. Geben wir zwei Zahlen ein, z. B. 20 und 30, und klicken Sie dann auf die Schaltfläche „Aufrufen“. Wir erhalten das Ergebnis 50.

So verwenden Sie den Sitzungsstatus (ASP.Net Web Services)

So verwenden Sie den Sitzungsstatus (ASP.Net Web Services)

Lassen Sie uns eine weitere Berechnung durchführen, z. B. 30 und 70. Klicken Sie dann auf die Schaltfläche „Invoke“, wir erhalten das Ergebnis als 100.

So verwenden Sie den Sitzungsstatus (ASP.Net Web Services)

So verwenden Sie den Sitzungsstatus (ASP.Net Web Services)

Jetzt gehen wir zurück und testen unsere GetCalculation-Methode. Klicken Sie dann auf die Invoke-Methode, die nun alle zuvor durchgeführten Berechnungen anzeigt. Sie werden in Form eines StringArrays zurückgegeben.

So verwenden Sie den Sitzungsstatus (ASP.Net Web Services)0

Auf diese Weise funktioniert unser Webservice wie erwartet. Versuchen wir nun, diese Methoden in unserer Webanwendung zu verwenden. Dazu ziehen wir in Webform1.aspx ein GridViewSteuerelement hinein.

<tr>
    <td>
        <asp:GridView ID="gvCalculations" runat="server">
        </asp:GridView>
    </td>
</tr>

So verwenden Sie den Sitzungsstatus (ASP.Net Web Services)1

Vor dem Code nach der Dateiänderung, Wir müssen die Proxy-Klasse aktualisieren. Gehen Sie dazu zu CalculatorService und wählen Sie Update Service Reference.

So verwenden Sie den Sitzungsstatus (ASP.Net Web Services)2

Fügen Sie anschließend im btnAdd_Click-Ereigniscode-Snippet die folgenden Codezeilen hinzu.

gvCalculations.DataSource = client.GetCalculations();
            gvCalculations.DataBind();

            gvCalculations.HeaderRow.Cells[0].Text = "Recent Calculations";

So verwenden Sie den Sitzungsstatus (ASP.Net Web Services)3

Erstellen Sie unsere Lösung und sehen Sie sich dieses Webfenster in einem Browser an

So verwenden Sie den Sitzungsstatus (ASP.Net Web Services)4

Lassen Sie uns fortfahren und zwei Zahlen verbinden, z. B. 20 und 30. Und wir werden sehen, dass, obwohl wir eine Berechnung durchgeführt haben, immer noch eine Meldung wie „Sie haben keine Berechnungen durchgeführt“ angezeigt wird.

So verwenden Sie den Sitzungsstatus (ASP.Net Web Services)5

Dies liegt im Wesentlichen daran, dass die Webanwendung nicht dieselbe SessionId sendet wie der Webdienst. Setzen Sie dazu allowCookie in der web.config-Datei auf true.

So verwenden Sie den Sitzungsstatus (ASP.Net Web Services)6

Lassen Sie uns nun das Webfenster ausführen und füge einige Zahlen hinzu. Jetzt können wir sehen, dass es wie erwartet läuft.

So verwenden Sie den Sitzungsstatus (ASP.Net Web Services)7

Deshalb hier ein paar Punkte, über die man gründlich nachdenken sollte:

  • Wenn der Webdienst geändert wird, muss die Proxy-Klasse der Clientanwendung aktualisiert werden. Klicken Sie dazu mit der rechten Maustaste auf den Dienst im Ordner „Dienstreferenz“ und wählen Sie den Eintrag „Dienstreferenz aktualisieren“.

  • Setzen Sie das Attribut „allowCookies“ auf „true“, damit die Clientanwendung vom ASMX-Webdienst zurückgegebene Cookies akzeptieren und sie in alle zukünftigen vom Webdienst initiierten Anforderungen kopieren kann. Dadurch wird sichergestellt, dass die Kommunikation zwischen dem Client und dem Webdienst dieselbe Sitzung ist bleibt erhalten.

Das obige ist der detaillierte Inhalt vonSo verwenden Sie den Sitzungsstatus (ASP.Net Web Services). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn