none
Utilizar session no webmethod RRS feed

  • Pergunta

  • E ai pessoal firme e forte? 

    Queria saber uma coisa, como acesso variáveis de sessão dentro de um WebMethod? Acessei

     http://msdn.microsoft.com/en-us/library/byxd99hx(v=vs.90).aspx#vbtskusingwebmethodattributeenablesession pra ter uma idéia mas não deu certo, porque não consigo acessar a propriedade Session dentro do Webmethod, alguém tem uma luz??? Vlw.

     

    Falando nisso, o webmethod sempre tem que ser static???

    Por que eu utilizei ele sem o static e funcionou, (bom pelo menos aparentemente).

     

        //Verifica se o produto que vai ser comprado, já está comprado com outra promoçao.
        [System.Web.Services.WebMethod(EnableSession = true)]
        [System.Web.Script.Services.ScriptMethod()]
        public string checaItem(String id)
        {
          /*
           * <summary>Verifica se o item ja foi comprado em outra promocao.</sumary>
           * <parameter name='id'>Id do produto a ser pesquisado</parameter>
           * <return>String serializada com a outra promocao ou string vazia se nao houver.</return>
           */
          
          return "zeta";
    
       
        }

    sexta-feira, 21 de janeiro de 2011 11:59

Respostas

  • Oi,

    O WebMethod não precisa ser static.

    Também não consegue utilizar sessão devido ao tipo das classes de um webservice. Elas herdam de System.Web.Services.WebService, para você trabalhar com Session, ViewState, Cache e etc, é apenas em classes que herdam de Page.


    ----------------------------
    Bruno Seixas
    Analista de Sistemas
    • Marcado como Resposta Klawztro sexta-feira, 21 de janeiro de 2011 13:59
    sexta-feira, 21 de janeiro de 2011 13:39

Todas as Respostas

  • Oi,

    O WebMethod não precisa ser static.

    Também não consegue utilizar sessão devido ao tipo das classes de um webservice. Elas herdam de System.Web.Services.WebService, para você trabalhar com Session, ViewState, Cache e etc, é apenas em classes que herdam de Page.


    ----------------------------
    Bruno Seixas
    Analista de Sistemas
    • Marcado como Resposta Klawztro sexta-feira, 21 de janeiro de 2011 13:59
    sexta-feira, 21 de janeiro de 2011 13:39
  • Cara, eu tirei o static e o método nem foi chamado, porém com static funciona normal.... 
    sexta-feira, 21 de janeiro de 2011 14:20
  • Oi,

    Como voce esta chamando o método? Você esta se conectando com o web service por  Web Reference ?


    ----------------------------
    Bruno Seixas
    Analista de Sistemas
    sexta-feira, 21 de janeiro de 2011 14:54
  • Entao cara, eu estou acessando ele por um javascript: 

     

            $('.botaoClique').click(function () {

                var idPromo = $('#id_conjunto').attr('meta-idConj');

                var idProduto = $(this).attr('meta-idProd');

                alert(idPromo + ' - ' + idProduto);

                $.ajax({

                    type: "POST",

                    url: 'Catalogo.aspx/itemJaComprado',

                    data: "{ idProduto : '" + idProduto + "', idConjunto : '" + idPromo + "' }",

                    contentType: 'application/json; charset=utf-8',

                    success: function (data) {

                        alert(data);

                    }

                });

    sexta-feira, 21 de janeiro de 2011 17:13