Mostrando las entradas con la etiqueta IIS. Mostrar todas las entradas
Mostrando las entradas con la etiqueta IIS. Mostrar todas las entradas

martes, 27 de octubre de 2015

Consumiendo WebService ASMX

Aunque ASMX ya es antiguo aún se lo sigue usando.

Este es un pequeño ejemplo de consumo desde un proyecto ASPX en VS2013 Express y uso del Web Service http://www.dneonline.com/calculator.asmx

Se debe dar clic derecho sobre Refences o sobre el proyecto:


Con esto se muestra la siguiente pantalla:
Podemos poner el link del WS en el primer recuadro, sin embargo si vamos a consumir desde un framework 2.0 debemos dar clic en el botón Advanced... que está al final de la imagen, con esto se muestra una nueva ventana.

Y nuevamente clic en el botón Add Web Reference... que se encuentra al final de la ventana.


En esta pantalla ponemos el link del WS. El We reference name se lo puede cambiar (yo lo deje igual) y dar clic en Add Reference.

Prácticamente esto es todo. 

Ahora hacer la referencia y uso:

En el aspx agregue:

    <div>
        <asp:TextBox ID="txt_1" runat="server"></asp:TextBox>
        <asp:TextBox ID="txt_2" runat="server"></asp:TextBox>
        <asp:Button ID="btn_webService" runat="server" Text="Web Service" OnClick="btn_webService_Click" />
        <asp:Label ID="lbl_respuesta" runat="server"></asp:Label>
    </div>

y el el código del botón (es mejor no poner código en el botón!):


        protected void btn_webService_Click(object sender, EventArgs e)
        {
//esta es una instancia de la referencia del WS y Calculator lo puedes encontrar en el WSDL description <wsdl:service name="Calculator"> o si en VS poner ver todos lo archivos vas a ver que bajo la rerefencia esta el .disco y .wsdl
            var cliente = new com.dneonline.www.Calculator();

            this.lbl_respuesta.Text = cliente.Add(Convert.ToInt16(this.txt_1.Text), Convert.ToInt16(this.txt_2.Text)).ToString();

        }




Hice uso del método Add, al que le paso el valor de los textbox y lo muestro en el label.

Diego.


lunes, 19 de octubre de 2015

Error levantando SVC en IIS8 - HTTP Error 404.17 - Not Found

Al intentar desplegar un servicio web que se encuentra en nuestro IIS se presentra el error:
HTTP Error 404.17 - Not Found
The requested content appears to be script and will not be served by the static file handler.
Para esto se debe verificar que dentro de Handler Mappings del IIS exista el Handler "svc-integrated-4.0"


En este caso existen 3 svc handlers, pero no el que necesita.
Handler
En el panel derecho arriba damos click en "Add Managed Handler...", en la ventana ingresamos:
Request path: *.svc
Type: System.ServiceModel.Activation.ServiceHttpHandlerFactory, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
Name: svc-integrated-4.0
Click en el botón "Request Restrictions...", quitar el check de "Invoke handler only of request is mapped to:"
Con esto el servicio se desplegará.


Diego