none
Problema con WebService RRS feed

  • Pregunta

  • Buenas estoy creando un Servicio Web muy sencillo y no consigo que funcione. Lo que quiero es que un usuario introduzca por un TextField una palabra ; recogerla, pasarsela a un webservice y que esté la guarde ahi, y que con otro método del webservice obtenga ese dato modificado en el webservice.

    El código del Webservice:

    Imports
     System.Web
    Imports System.Web.Services
    Imports System.Web.Services.Protocols

    <WebService(Namespace :="http://tempuri.org/" )> _
    <WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
    <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
    Public Class Service
    Inherits System.Web.Services.WebService

    Private texto As String = "alain"



    <WebMethod()> _
    Public Sub Pasar(ByVal text As String)

    texto = text

    End Sub

    <WebMethod()> _
    Public Function Obtener() As String

    Return texto

    End Function



    El .asmx:


    <%@ WebService Language="vb"
    CodeBehind="~/App_Code/Service.vb"
    Class
     ="Service"
    %>


    La aplicación:

    Imports testWebServiceHelloWorld.PDA


    Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    Dim objWsSaludo As New PDA.ServiceSoapClient


    objWsSaludo.Pasar(TextBox1.Text)


    LinkLabel1.Text = objWsSaludo.Obtener

    End Sub
    End Class


    Gracias al que responda
    lunes, 19 de octubre de 2009 14:16

Respuestas

  • hola

    eso que quieres hacer no vas a poder lograrlo tal como lo tienes codificado.

    recuerda que los web service al igual que asl paginas web son stateless, o sea sin estado, cada request a un webmethod opera sobre sus datos y luego pierde toda informacion, salvo que la guardes en una db


    por ahi podrías hacerlo si habilitas el uso de Session, que por defecto no viene habilitado


    aqui el truco esta en especificar la propiedad EnableSession en true, y luego usar el objeto Session para quee ste conserve el valor entre request

        <WebMethod(EnableSession:=True)> _
        Public Function Count() As Integer
            If Session.Item("SessionCount") Is Nothing Then
                Session.Item("SessionCount") = 1
            Else
                Session.Item("SessionCount") = CInt(Session.Item("SessionCount")) + 1
            End If
            Return CInt(Session.Item("SessionCount"))
        End Function


    saludos

    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marcado como respuesta dreamender lunes, 2 de noviembre de 2009 16:28
    viernes, 23 de octubre de 2009 4:21