Avatar billede dennism Nybegynder
29. april 2009 - 21:13 Der er 5 kommentarer og
1 løsning

ASP.NET WebService: Problem med variabler

Jeg har en ASP.NET WS med noget lignende:

public class WebService {
    Boolean isValidUser = false;
   
    [WebMethod]
    public Boolean Logon(...) {
        ...
        this.isValidUser=true;
        ...
    }
   
    [WebMethod]
    public Customer[] GetCustomers() {
        ...
        if (this.isValidUser) {
        ...
    }   
}

Og så bruger jeg min webservice i stil med dette:

WebService service = new WebService();
service.Login(...);
Customers[] customers = service.GetCustomers();

Når jeg kører det lokalt virker det fint, men så snart jeg smider det online virker det ikke længere. Så er det som om, at den ikke husker værdien af mine feltvariabler i klassen mellem hvert kald på min webservice. Kan det godt passe? Findes der en løsning på det?
Avatar billede erikjacobsen Ekspert
29. april 2009 - 21:44 #1
Du kan ikke gemme i almindelige variabler. Det virker måske på din lokale server, fordi den ikke opretter en ny proces mellem kald - det skal man regne med en rigtig webserver gør.

Du kan gemme i en sessions-variabel, hvis det giver mening, eller i en database. Eller evt. i en fil.
Avatar billede arne_v Ekspert
29. april 2009 - 21:45 #2
Proev med:

service.CookieContainer = new CookieContainer();

i client og:

[WebMethod(EnableSession=true)]

paa server.
Avatar billede dennism Nybegynder
29. april 2009 - 21:47 #3
Ok, det lurede mig! :) Jeg har også nogle Java-klienter som skal bruge min service - så ved ikke om det med sessions dur så? Kan man kalde service.CookieContrainer fra Java, hvor stubbene er lavet med WSDL2Java?
Avatar billede arne_v Ekspert
29. april 2009 - 21:54 #4
Med Axis kunne man lave foelgende:

        TestService service = new TestServiceLocator();
        Test tst = service.getTestService();
        ((Stub)tst)._setProperty(Stub.SESSION_MAINTAIN_PROPERTY, new Boolean(true));

Jeg vil tro at man kan noget lignende med Axis2, men jeg har ikke lige et eksempel paa lager.
Avatar billede dennism Nybegynder
29. april 2009 - 21:55 #5
Ok, tak :) Jeg giver det et forsøg. Vil I smide et svar?
Avatar billede arne_v Ekspert
30. april 2009 - 04:47 #6
svar

husk at teste først inden du afslutter - der er rigtigt mange kombination smuligheder
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester