domingo, 21 de octubre de 2012

[ASP.NET] Web Service - Publicar en IIS Windows 7 (3/3)

 

Introducción


El uso de Win 7 o Windows Server implica contar con una versión de IIS mas robusta a la hora de exponer servicios para ser consumidos. Con Win 7 o Win 2008 contamos con IIS 7 el cual permite crear sitios web en un puerto especifico que definamos, esto no era posible de lograr en Win Xp

Este artículo es la continuación de:

[ASP.NET] Crear y Publicar - Web Service (1/3)

[ASP.NET] Web Service - Publicar en IIS Windows XP (2/3)

En esta oportunidad a diferencia de las anteriores usaremos un proyecto creado en VS 2010, básicamente es el mismo proyecto que fue convertido de versión para poder usar .net 4

 

Publicar Web Project VS 2010


Para cambiar un poco la situación de los contextos anteriores se usara el Visual Studio 2010, crear una aplicación web que exponga ya sea paginas o servicio requiere aplicar los mismos pasos expuestos en los artículos anteriores, toda la explicación anteriormente brindada es totalmente valida ya sea se use VS 2008 o 2010

VS 2010 brinda mas opciones al momento de publicar, se accede mediante un click del botón derecho del mouse

SNAGHTML30fe510

Al comparar la pantalla de publicación con la utilizada en los artículos anteriores se notaran mas completa

SNAGHTML3485763

Algo que rápidamente nos llama la atención es la creación perfiles de publicación, utilizado para definir un determinado set de opciones, en este caso hare uso de la publicación a una carpeta del disco local, y grabare el profile para poder reutilizarlo las veces que hagan falta

SNAGHTML34a9b36

El resultado será el mismo que se obtuvo en los artículos anteriores, paginas, servicios y dlls listos para ubicarlos en el IIS

SNAGHTML34e2c4e

 

Acceso a la opciones de publicación


La publicación tiene mas opciones de las esperadas, se puede acceder de forma rápida, si se habilita la toolbar

SNAGHTML34fc11e

se habilitara la opción

image

para acceder de forma rápida al profile de publicación.

Si se presto atención a la pantalla “Publish Web” se habrá notado una leyenda donde se hace mención a opciones avanzadas de publicación, se accede a esta por medio de las propiedades del proyecto web

SNAGHTML3536c79 

 

Creación Sitio IIS 7


Al igual que sucedía con IIS 5 de Win Xp al acceder al administrador se cuenta con un sitio creado por defecto residente en el puerto 80

SNAGHTML3ba0b39

pero como diferencia ahora si se podrán crear sitio web que estén en el puerto que uno desea, el primer paso por supuesto será crear el sitio

SNAGHTML7691d5

Solo es cuestión de definir un nombre para el sitio, la ruta física donde se realizara el deploy y el puerto

SNAGHTMLcabdf5

recordemos que el Default Web Site es quien utiliza el puerto 80, por eso en este caso he usado el 8080, pero puede ser cualquier otro que uno decida usar

Seleccionando el sitio creado se podría acceder a opciones básicas y avanzadas

SNAGHTML1446628

SNAGHTML1456d97

Con estos simples pasos se ha creado un sitio, solo resta copiar los archivos publicados del paso anterior

 

Application Pool


Es importante notar como de forma automática al crear el sitio se define un Application Pool con el nombre del sitio

SNAGHTML147be65

este puede cambiarse por uno existente, pero es buena idea que cada sitio tenga su propio App Pool

En este se podrá configurar la versión del framework de .net que será usada, el usuario con el cual se ejecuta el sitio, si se dispone de una pc con arquitectura de 64 bits podrá habilitarse o no la compatibilidad con 32bit

Existe opciones básicas

SNAGHTMLd15055

Para configurar principalmente la versión del framework utilizado

SNAGHTMLcf988b

y opciones avanzadas

SNAGHTMLd3519c

en donde además de poder cambiar la versión del framework se puede definir el identity, el usuario que definan será con el cual se ejecuten los procesos, si quiere lanzar un .exe, una aplicación, acceder a una carpeta que esta por fuera del sitio, o a una shared folder, deben asegurarse que ese usuario tenga permiso

Igualmente el identity del App Pool no es el único lugar donde definir el usuario, se puede recurrir a la configuración del sitio, el web.config

<system.web>
    
    <identity impersonate="true" userName="dominio\nombreusuario" password="password"/>
.
.
</system.web>

Deploy del desarrollo


Al copiar el contenido del código a la carpeta del sitio se podrá acceder al contenido, así como visualizarlo en el explorador

image

si en los pasos anteriores no modificaron ninguna opción puede que obtengan el siguiente mensaje de error

image

especialmente si usas una base de datos que se encuentra en el App_Data, la cual se adjunta de forma dinámica al servicio de sql server, para solucionarlo solo será necesario cambiar el usuario definido en el App Pool

SNAGHTML1acd4a5

Se podría cambiar a NetworkService

image

Ahora si al acceder a la pagina podremos ver que resuelve correctamente

SNAGHTML1afda9e

Una vez publicado el sitio se podría modificar de forma visual la configuración con la ayuda del IDE del IIS, por ejemplo, opciones como ser el connection string

SNAGHTML1d78c60

SNAGHTML1d64237

cambiar el valor desde el IIS impacta directo en el web.config del sitio

Código


Se ha usado Visual Studio 2010 y Sql Server Express 2008 R2

[C#]
 

144 comentarios:

  1. Está muy bueno el artículo, se responden muchas preguntas que casi siempre dificultan la tarea de realizar una publicación en IIS.

    Gracias y esperamos que sigas
    escribiendo.

    Un saludo,
    Cristian Pérez.

    ResponderEliminar
  2. saludos como se incorpora la base de datos al proyecto para que el .exe se pueda utilizar en cualquier pc

    gracias
    como puedo insertar datos de una celda de un datagrid por ejemplo column 1 y column 2 solo quiero qe inserte la colum1 gracias me seria de mucha utilidad

    ResponderEliminar
  3. Leandro,
    Interesante articulo,
    Queria hacerte una consulta fuera de este tema, y era sobre una aplicacion web que estoy desarrollando, en vs 2008, necesito realizar una impresion en una boleta del lado del cliente pero esto debe hacerse asignando desde que linea quiero empezar a imprimir ya que previamente pueden haber ya impresiones en la boleta esto es posible hacerlo con el crystal Reports que viene en vs 2008? de antemano muchas gracias

    Saludos David Garcia
    davidgarcia79@gmail.com

    ResponderEliminar
  4. hola Manuel

    que base de datos estas utilizando?

    podrias ponerla en la carpeta App_Data, si usas luego en el connection string el |Datadirectory| la tomara de esa carpeta


    saludos

    ResponderEliminar
  5. hola David

    puede usar crystal sin problemas (siempre que no sea la version Express del VS)

    lo que si recuerda que una impresion directa no puede, solo le mostraras al usuario la vista previa de la boleta pero la decision de imprimir y en que impresora estara a cargo de uana ccion de la persona, esto es porque el browser no permite el acceso directo a los recursos de la pc del usuario

    saludos

    ResponderEliminar
  6. Muy buen articulo.
    leandro necesito responder a algunas dudas sobre un proyecto que estoy haciendo, con huella digital lo as hecho almacenar la huella de un usuario y luego validarla con sqlserver 2008r2, al guardala la guardo con el mismo id del usuario, y un campo huella binary, en una tabla huella pero no puedo recuperarla. tienes alguna idea?

    ResponderEliminar
  7. hola Roy

    quizas esto de una pista

    [ASP.NET] - Guardar Imagen base de datos

    como veras recuoeras la imagen como byte array
    si la necesitas como archivo usa el
    File.WriteAllBytes()

    para llevarla a un archivo tempoaral dentro del sitio

    saludos

    ResponderEliminar
  8. Este articulo esta muy interesante y aclara muchas lagunas, me gusta!!!

    ResponderEliminar
  9. Hola, estube viendo los tutoriales y estan muy bueno, pero tengo una duda o no se si me puedas ayudar sobre ella, quiera montar una aplicacion de asp.net 2008 a un servidor, pero al momento de subirla al servidor me aparece como www.ejemplo.com,servidor.com
    No se si sepas como hacer un alias en el servidor que al momento de poner www.ejemplo.com me direccione a mi aplicacion sin que aparesca el nombre de mi servidor

    Sin mas por el momento un saludo
    William

    ResponderEliminar
  10. hola

    conozco poco de admin de red, pero sino me equivoco esto lo logras realizando una entrada en el servicio de DNS de windows

    lo que no mencionaste es si el hosting es propio o es algo contratado, si es propio entonces analiza por un este lado si se puede lograr

    Subdomain Configuration

    saludos

    ResponderEliminar
  11. Gracias por tu respuesta, el servidor esta instalado en mi compu, la aplicacon solo sera mostrada en una red de 4 computadoras, pero al hacer lo que menciona tu pagina, solo me deja crear el nombre de mi pagina como www.ejemplo.com.servidor.com, es lo que me tiene un poco desconcertado, pero seguire buscando y gracias por tu ayuda =)

    ResponderEliminar
    Respuestas
    1. amigo buena tarde, si pudiste visualizar tus proyecto desde otra maquina desde una misma
      red?

      Eliminar
  12. hola leandro estuve buscando en tu blog algo q pueda ayudarme con un tp que debo presentar sobre base de datos en access y C#, pero no encuentro. soy novata en este tema y la verdad me esta costando mucho poder ejecutar las consultas. ojala puedas darme una mano con esto, q me esta volviendo loca!! el tema es q haga lo que haga cuando ejecuto la consulta siempre me tira el mismo dato. te comento q es una base de datos de un local de ropa. y quiero hacer una consulta sobre precio, otra sobre idropa y otra sobre marca de ropa. es decir q cuando escriba en el textbox una marca me salga todos los datos relacionados. te paso lo que puse en codigo en el form de consulta.

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;

    namespace localderopa
    {
    public partial class Form8 : Form
    {
    public Form8()
    {
    InitializeComponent();
    }

    private void marcaBindingNavigatorSaveItem_Click(object sender, EventArgs e)
    {
    this.Validate();
    this.marcaBindingSource.EndEdit();
    this.tableAdapterManager.UpdateAll(this.basededatosropa1DataSet);

    }

    private void Form8_Load(object sender, EventArgs e)
    {
    // TODO: esta línea de código carga datos en la tabla 'basededatosropa1DataSet2.estilo' Puede moverla o quitarla según sea necesario.
    this.estiloTableAdapter.Fill(this.basededatosropa1DataSet2.estilo);
    // TODO: esta línea de código carga datos en la tabla 'basededatosropa1DataSet.ropa' Puede moverla o quitarla según sea necesario.
    this.ropaTableAdapter.Fill(this.basededatosropa1DataSet.ropa);
    // TODO: esta línea de código carga datos en la tabla 'basededatosropa1DataSet.marca' Puede moverla o quitarla según sea necesario.
    this.marcaTableAdapter.Fill(this.basededatosropa1DataSet.marca);

    }
    DataSet midataset = new DataSet();

    private void button1_Click(object sender, EventArgs e)
    {
    midataset.Clear();

    oleDbDataAdapter1.SelectCommand.CommandText = "select * from marca where nombredemarca'" + nombredemarcaTextBox.Text + "'";

    oleDbDataAdapter1.Fill(midataset, "nombredemarca");
    dataGridView1.DataSource = midataset;
    dataGridView1.DataMember = "nombredemarca";
    }

    private void button2_Click(object sender, EventArgs e)
    {
    midataset.Clear();

    oleDbDataAdapter1.SelectCommand.CommandText = "select * from ropa where idropa '" + idropaTextBox.Text + "'";

    oleDbDataAdapter1.Fill(midataset, "idropa");
    dataGridView1.DataSource = midataset;
    dataGridView1.DataMember = "idropa";
    }

    private void button3_Click(object sender, EventArgs e)
    {
    midataset.Clear();

    oleDbDataAdapter1.SelectCommand.CommandText = "select * from ropa where precio '" + precioTextBox.Text + "'";

    oleDbDataAdapter1.Fill(midataset, "precio");
    dataGridView1.DataSource = midataset;
    dataGridView1.DataMember = "precio";
    }

    private void button4_Click(object sender, EventArgs e)
    {
    Form1 F1 = new Form1();
    F1.Show();
    this.Hide();
    }

    private void oleDbDataAdapter1_RowUpdated(object sender, System.Data.OleDb.OleDbRowUpdatedEventArgs e)
    {

    }

    private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
    {

    }


    }
    }

    ResponderEliminar
  13. hola Mariana

    noto algunos puntos extraños

    - esta query
    "select * from ropa where idropa '" + idropaTextBox.Text + "'";

    como puede estar funcionando sino tiene el = para separar el campo del valor en el where

    - ademas porque no usas parametros? concatener las queries en un string no es bueno

    yo recomendaria que trabjaes con una estructura como ser

    [WinForms] Edición Empleados


    - en el evento de button1 no veo que definas un filtro o sea un where en la query para que solo muestre filtrando por lo que escribas

    imagino deberias usar el LIKE en el where para filtrar por aproximacion

    http://social.msdn.microsoft.com/Forums/es/vbes/thread/538a09c4-ee83-4591-a1c7-a021a470836d


    saludos

    ResponderEliminar
  14. saludos una pregunta
    estoy creando una aplicacion en visual studio 2010 para la manipulacion de iis 6.0 y 7.0

    ya tengo funcionando perfectamente
    la creacion del sitio,
    asignar el documento default
    asignar el grupo de aplicacion

    quisiera saber como asigno un usuario especifico en la opcion conectar como ..

    necesito ayudaaa

    ResponderEliminar
  15. Hola Leandro, como estas?
    Tengo un problema con un servidor de web que posee su idioma en ingles, por lo que al publicar los desarrollos y realizar la pruebas estas dan error al querer visualizar o ejecutar metodos que posean validaciones con fechas ya que le paso dd/mm/yyyy y el servidor entiende mm/dd/yyyy.

    Cual es la mejor forma de solucionarlo.

    Gracias

    ResponderEliminar
  16. Hola Leandro recibe una felicitación por la información que nos compartes.
    Oye y una pregunta como puedo ingresar los datos obtenidos con un lector de código de barras a un text box. Muchas gracias de antemano ¡Saludos!

    ResponderEliminar
  17. hola Laurita

    no tiene que hacer nada, un lector actua como un teclado, si tienes el foco en el textbox cuando realices la lectura el solo ingresada el codigo leido en la etiqueta de barras

    podrias usar el evento lostfocus del textbox para realziar alguna accion, el lector por lo general se configura para lanzar despues de la lectura algun caracter como ser Tab o enter

    saludos

    ResponderEliminar
  18. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  19. Buen día Leandro, solo para preguntarte sobre un caso que estabas analizando y ya no tuve respuesta:

    http://social.msdn.microsoft.com/Forums/es-ES/vbes/thread/2ea9187e-46b2-4f01-be8f-8a02b0a72423

    Saludos

    ResponderEliminar
  20. Hola Leandro gran artículo.

    De hecho me ha servido para publciar mi aplicación web, pero resulta que tengo un inconveniente, cuando publico la aplicación, la páginas de reportes no aparecen mencionar que paso parametros, entonces intente copiar loa archivos de la aplicación directamente al directorio del IIS y ahora si me aparecen los reportes pero me da error en la conexíon a la base de datos, lo raro que es que si funcionan en VS2010.

    Muchas gracias por tu ayuda.

    ResponderEliminar
  21. hola FR@NCO

    respondi en el foro

    saludos

    ResponderEliminar
  22. hola David

    cuando dices reporte te refieres a Crystal o a Reporting Service ?

    el reporte lo conectas a un dataset tipado ? porque si es asi tu controlas la conexion de donde tomes los datos usando ado.net, el connection string deberia estar en el Web.config


    saludos

    ResponderEliminar
  23. Hola Leandro, gracias por responder.

    Me refiero al archivo ASPX cuando he publicado la aplicación, es decir no me muestra el archivo reporte.aspx, Si copio directamente los archivos al Sitio creado en IIS si me aparece la pantalla reporte.aspx pero me dice error en la conexion del Visor del reporte de Crystal.

    Llamo al reporte mediante código.

    Cúal crees que es el problema.




    ResponderEliminar
  24. guardo un paciente y a lo que quiero modificar o eliminar otro paciente me dice REFERENCIA A OBJETO NO ESTABLECIDA COMO INSTANCIA DE UN OBJETO

    Ejecuto el programa primero guardo un paciente se me guarda con éxito; a lo que voy al formulario donde tengo un datagrib con los pacientes creados doy click a una fila se me abre el formulario con los datos llenos del paciente seleccionado y doy al boton eliminar y me da el error mencionado;

    lo mismo pasa si modifico los datos y doy click en botón modificar me da el mismo error..

    Los códigos aparentemente están bien porque hice 3 ejecuciones y en la primera ejecución guarde satisfactoriamente, en la segunda ejecución elimine con éxito y en la tercera ejecución actualice correctamente.

    COMO HAGO PARA REALIZAR LAS TRES OPERACIONES EN UNA SOLA EJECUCION????????

    ResponderEliminar
  25. hola David

    instalaste en el servidor el redistribuible de crystal ?

    Crystal Download

    saludos

    ResponderEliminar
  26. Hola Leandro pues lo que instale fue esto: CRforVS_13_0.exe

    Ahora el enlace que me pusiste me dice que no tengo permisos.

    Buscare! y gracias.

    ResponderEliminar
  27. hola David

    si la verdad ultimamente esta complciado encontrar los redistirbuibles de crystal, se ve que algun rediseño hicieron en los sitios porque link que antes se usaban para al descarga ahora ay no funcionan

    ese link de descarga funcionaba, pero ahora yo tampoco puedo ingresar

    la verdad estos de Crystal no se que quieren lograr pero cosas como estas hacen que uno se vaya a Reporting Service

    saludos

    ResponderEliminar
  28. hola David

    prueba con el comentario de aqui

    http://scn.sap.com/message/9302616#9302616

    alli poenen un link donde si se puede acceder a la pagian de descarga

    saludos

    ResponderEliminar
  29. hola Axl Zambrano

    pareciera ser un problema de datos o algo no controaldo de forma correcta

    has probado poner un breakpoint en la accion que dices genera este error para poder evaluar que linea es la que causa el problema

    no se si tienes algun try..catch en el codigo cosa de poder analziar el StackTrace para vwer por dodne pasa la eejcucion cuando falla

    saludos

    ResponderEliminar
  30. HOLA DISCULPA TENGO UN PROBLEMA CUANDO LLENO EL FORMULARIO DE NUEVO CLIENTE Y DOY CLICK EN GUARDAR MI SALE ERROR

    LOS DATOS DE CADENA O BINARIOS SE TRUNCARÍAN

    SE TERMINÓ LA INSTRUCCIÓN.

    ESTE ES EL CODIGO:

    Private Sub ToolStripButton4_Click(sender As Object, e As EventArgs) Handles ToolStripButton4.Click

    Try
    Using conexion As New SqlConnection("Data Source=ASHLEY;Initial Catalog=BARRAQUEL;Integrated Security=True")
    conexion.Open()
    Using cmd As New SqlCommand()
    cmd.Connection = conexion
    cmd.CommandText = "insert into CLIENTES(CODIGO_CLIENTES,CI_DEL_CLIENTE,FECHA,NOMBRE,APELLIDOS,DIRECCION,EDAD,PROFESION,SEXO,TELEFONO,CELULAR,CORREO_ELECTRONICO,OD_ESFERA,OD_CILINDRO,OD_EJE,OD_PRISMA,OD_ADICCION,OI_ESFERA,OI_CILINDRO,OI_EJE,OI_PRISMA,OI_ADICCION,DP,ALT,OBSERVACION_CLIENTE) VALUES(@CODIGO_CLIENTES, @CI_DEL_CLIENTE, @FECHA, @NOMBRE, @APELLIDOS, @DIRECCION, @EDAD, @SEXO, @PROFESION, @TELEFONO, @CELULAR, @CORREO_ELECTRONICO, @OD_ESFERA, @OD_CILINDRO, @OD_EJE, @OD_PRISMA, @OD_ADICCION, @OI_ESFERA, @OI_CILINDRO, @OI_EJE, @OI_PRISMA, @OI_ADICCION, @DP, @ALT, @OBSERVACION_CLIENTE)"

    cmd.Parameters.AddWithValue("@CODIGO_CLIENTES", CODIGO_CLIENTESTextBox.Text)
    cmd.Parameters.AddWithValue("@CI_DEL_CLIENTE", CI_DEL_CLIENTETextBox.Text)
    cmd.Parameters.AddWithValue("@FECHA", FECHADateTimePicker.Text)
    cmd.Parameters.AddWithValue("@NOMBRE", NOMBRETextBox.Text)
    cmd.Parameters.AddWithValue("@APELLIDOS", APELLIDOSTextBox.Text)
    cmd.Parameters.AddWithValue("@DIRECCION", DIRECCIONTextBox.Text)
    cmd.Parameters.AddWithValue("@EDAD", EDADTextBox.Text)
    cmd.Parameters.AddWithValue("@PROFESION", PROFESIONTextBox.Text)
    cmd.Parameters.AddWithValue("@SEXO", SEXOComboBox.Text)
    cmd.Parameters.AddWithValue("@TELEFONO", TELEFONOMaskedTextBox.Text)
    cmd.Parameters.AddWithValue("@CELULAR", CELULARMaskedTextBox.Text)
    cmd.Parameters.AddWithValue("@CORREO_ELECTRONICO", CORREO_ELECTRONICOTextBox.Text)
    cmd.Parameters.AddWithValue("@OD_ESFERA", OD_ESFERATextBox.Text)
    cmd.Parameters.AddWithValue("@OD_CILINDRO", OD_CILINDROTextBox.Text)
    cmd.Parameters.AddWithValue("@OD_EJE", OD_EJETextBox.Text)
    cmd.Parameters.AddWithValue("@OD_PRISMA", OD_PRISMATextBox.Text)
    cmd.Parameters.AddWithValue("@OD_ADICCION", OD_ADICCIONTextBox.Text)
    cmd.Parameters.AddWithValue("@OI_ESFERA", OI_ESFERATextBox.Text)
    cmd.Parameters.AddWithValue("@OI_CILINDRO", OI_CILINDROTextBox.Text)
    cmd.Parameters.AddWithValue("@OI_EJE", OI_EJETextBox.Text)
    cmd.Parameters.AddWithValue("@OI_PRISMA", OI_PRISMATextBox.Text)
    cmd.Parameters.AddWithValue("@OI_ADICCION", OI_ADICCIONTextBox.Text)
    cmd.Parameters.AddWithValue("@DP", DPTextBox.Text)
    cmd.Parameters.AddWithValue("@ALT", ALTTextBox.Text)
    cmd.Parameters.AddWithValue("@OBSERVACION_CLIENTE", OBSERVACION_CLIENTETextBox.Text)


    cmd.ExecuteNonQuery()

    End Using
    End Using
    MessageBox.Show("GUARDADO CON EXITO")

    Catch ex As Exception
    MessageBox.Show(ex.Message)

    Limpiar()
    mostrargrid()
    End Try

    ESPERO PUEDAS AYUDARME..


    Responder Cit

    ResponderEliminar
  31. hola Axl Zambrano

    en realidad esta pregunta seria mas adecuada para plantear en el foro de vb.net mas que nada porque este permite trabajar mejor con la publicacion de codigo

    el problema que planteas seguramente se de porque algun campo lo defines cono varchar de algun tamaño pero estas asignado un texto que lo excede

    por ejemplo si en la db defines un campo del tipo varchar(20) el textbox que asignes en el parametro deberia estar limitado con el MaxLength a 20 caracteres si excede esto al asignarlo para insertar genera este error que se menciona aqui

    valida que no excedes en ningun valor lo definido en los campos de la tabla

    saludos

    ResponderEliminar
  32. Hola Leandro;

    Muchas gracias por tus aportes al final de cuentas he resuelto el problema, por cierto los CRV de Crystal los he encontrado aquí por si te sirven

    http://1800thenerd.wordpress.com/2010/11/24/sap-crystal-reports-for-visual-studio-2010-files-needed-to-download/.

    Otro problema era que estaba utilizando una conexión ODBC, funciono con una conexión OLE DB.

    Saludos cordials

    ResponderEliminar
  33. HOLA LEANDRO

    TENIAS RAZON ERA PROBLEMA DE CARACTERES PERO YA LO SOLUCIONE PERO TENGO UNA DUDA CUANDO VOY A REVISAR LOS DATOS DEL CLIENTE DOY TAB PARA PASAR DE UN CAMPO A OTRO Y ME SALE ALGUNOS TEXTBOX LLENOS DE ESPACIO NO SE SI ES NORMAL O COMO RESUELVO ESO...
    POR EJEMPLO TENGO CAMPO QUE ES SEXO:M
    Y ME SALE CON TRES ESPACIOS Y LOS CAMPOS QUE ESTAN VACIOS ME SALEN 6 ESPACIOS Y ME TOCA BORRARLOS PARA LLENAR CON UN DATO..

    ResponderEliminar
  34. hola Axl Zambrano

    en la tabla de la db de que tipo defines los campos de texto ? no sera que usas "char"

    porque si es recuerda que este tipo de dato debe si o si completar el tamaño que le fijas con espacios

    es por eso que deberias usar "varchar" como tipo de dato, si es que el tamaño es variable

    para eliminar los espacios usa la funcion Trim() en c#

    saludos

    ResponderEliminar
  35. HOLA LEANDRO..

    SERIA POSIBLE QUE ME AYUDES EN UN GRAN PERO GRAN PROBLEMA...
    PODRIAS POR FAVOR VER ESTE ENLACE DONDE TENGO MI INQUIETUD..

    http://social.msdn.microsoft.com/Forums/es-ES/vbes/thread/3fbc1b4e-a101-417b-84de-418f19d5b1ef

    ResponderEliminar
  36. hola Axl Zambrano

    veo que brindaron respuestas en la pregunta del foro, pero no has mencionada nada al respecto

    no te ayudaron lo que se comento?

    saludos

    ResponderEliminar
  37. Hola Leandro..

    He leido este tema

    http://ltuttini.blogspot.com.ar/2010/01/datagridview-parte-4-uso-del.html

    El problema es que no puedo acomodarlo a mis necesidades...

    trabajo con SQL server 2012 y en visual basic 2012..

    podrias de favor darme una idea para acomodarlo para pobrar en mi proyecto...

    GRACIAS SALUDOS..

    ResponderEliminar
  38. hola Axl

    me pregunto si leiste el otro articulo porque hiciste la pregunta en este?


    ademas dices que no puede adaptarle pero no mencionas que es lo que has intentado, o cual es el problema

    quizas si la idea es poner codigo realizar el planteo en el foro

    alli se puede poner mejor codigo para analizarlo

    saludos

    ResponderEliminar
  39. Hola Leandro..

    Gracias por responder como ya t comente en este link esta mi problema pero no me dieron una soluccion..

    http://social.msdn.microsoft.com/Forums/es-ES/vbes/thread/3fbc1b4e-a101-417b-84de-418f19d5b1ef

    ResponderEliminar
  40. Leandro buenas tarde, yo tengo un problema, estoy intentando publicar mi sitio a travez de iis y verlo a travez de internet, no solo local, ya que asi me lo requieren en la clase, mi problema es que ya abri todos mis puertos y configure el modem (puerto 80) y no se publica que puedo hacer o cual seria tu solucion, espero me pudieras ayudar

    ResponderEliminar
  41. hola Saul

    tambien configuraste el router para mapear el puerto de WAN con la ip y puerto de LAN ?

    recuerdo que esto lo hacia en un linksys que tenia usando la opcion de forwarding

    imagen

    sino indicas que puerto de wan mapea con que puerto y la ip (seria de la pc donde esta el iis) de LAN no sabe como redirecionar cuando le llega el pedido desde internet

    saludos

    ResponderEliminar
  42. Leandro muchas gracias por tu ayuda, solo me hacia falta un permiso dentro del firewall, lo demas lo tenia hecho (la configuracion del modem). Muy buenos tus tutoriales, me han sacado de varios apuros

    ResponderEliminar
  43. Hola, Leandro.
    No entendi algo primero compartes un direcorio d:\blog\publish
    y despues creas la carpeta en el c:\inetpub para que es una carpeta y para que es la otra. y cuales archivos debo de subir no deben ir solo los dll y la caneccion web.config..?

    Saludos Gracias por el Tema

    ResponderEliminar
  44. hola manuel

    la carpeta publish es donde el VS dejara los archivos esto puede ser local en tu pc
    la carpeta inetpub es la que usa el IIS para definir el sitio, esta puede estar en tu pc si es que el servidor web estara alli mismo o podria estar en otro equipo que actuara como server web

    debes subir todo lo que el VS deje en la carpeta de publicacion, dll, aspx, config, etc

    saludos

    ResponderEliminar
  45. Hola Leandro, tengo una pregunta, ya configure mi sitio como dice tu publicación pero al momento de querer ingresar a mi sitio me manda el siguiente error:
    Este error (HTTP 500 Error interno del servidor) significa que el sitio web al que está conectado tiene un problema con el servidor que impide que se muestre la página web.

    Para obtener más información sobre errores HTTP, consulte la Ayuda.

    No se que pueda ser, espero me puedas ayudar ya que es mi primer sitio que subo.

    Gracias!!!!!

    ResponderEliminar
  46. hola Alejandra

    validaste que el Application Pool asignado al sitio este ejecutando ?

    cuando pones la url para ingresar defiens tambien la pagina, o sea
    http://localhost:puerto/pagina.aspx

    o sino ve de definir una pagina por defecto que exista

    saludos

    ResponderEliminar
  47. Hola nuevamente, si le pongo http://localhost:puerto/WEFLogin.aspx
    y lo que me comentas de que si vaalide que el Application Pool asignado al sitio este ejecutando?, perdon por mi ignorancia, pero donde puedo verificar eso????

    Otra cosa es que este sitio lo estoy publicando en un servidor en mi trabajo, no necesito hacer otra cosa para que lo pueda ver por red ????

    ResponderEliminar
  48. Hola Leandro, te comento que ya publique mi aplicacion web con iis, pero a la hora de ponerla a funcionar no reconoce la base de datos o el servidor; no se que configure mal o no configure.
    Tambien puede ser que no reconozca las bibliotecas de clases, yo veo que tu creas un servio web, yo solo tengo webform, no se como utlizar servicios web ni que funcionalidad tienes aqui.

    Depronto sabras esto a que se debe.
    Muchas gracias

    ResponderEliminar
  49. Hola nuevamente, mira estuve revisando y cuando pruebo la configuracion me mada esto:


    El servidor esta configurado para utilizar autentificacion de paso a traves con una cuenta integrada a la hora de tener acceso a la ruta de acceso especificada. Sin embargo el Administrador de IIS no puede verificar si la cuenta integrada tiene acceso. Asegurese de que la identidad del grupo de aplicaciones tiene acceso de lectura para la ruta fisica.

    ResponderEliminar
  50. hola Alejandra

    lo del application pool lo menciono en este mismo articulo

    para verlo desde otroa pc localhost no funciona, o sea sabes lo que es localhost, no ?

    debes poner la ip de la pc donde esta el iis

    http://IPoNombrePC:puerto/


    saludos

    ResponderEliminar
  51. Si ya vi que si esta iniciada la application pool y si se que es localhost, de hecho desde el mismo servidor debe de funcionar con el localhost y en otras pc's si es con la direccion ip, pero no no funciona.

    Seguire buscando que puede ser, gracias!!!

    ResponderEliminar
  52. hola Paula

    la verdad el planteo que realizas es demasiado generico, no sabria ni por donde empezar a ver

    dice que no reconoce la base o el servidor, pero no mencionas que base utilizas, ni como te estas conectando, no se si has revisado el conneciton string, o has intentado conectarte a la db para ver si esta funcionando el servicio

    En estos ejemplos si bien cree un servicio, para un desarrollo de paginas simples la publicacion es exactamente igual.

    saludos

    ResponderEliminar
  53. Hola Leandro, gracias a tu ayuda logre publicar la aplicacion, y que funcionara, lo que pasa ahora es que los reportes en crystal report no salen bn, no aparace el CrystalReportViewer, y no me es posible ya sea guardarlo o imprimirlo.
    Espero me puedas ayudar. Mil gracias

    ResponderEliminar
  54. hola

    pero sino puedes ver el report viewer, entonces no puedes ver el reporte

    en el servidor web has instalado el redistribuible de crystal

    http://1800thenerd.wordpress.com/2010/11/24/sap-crystal-reports-for-visual-studio-2010-files-needed-to-download/

    saludos

    ResponderEliminar
  55. hola Leandro, tengo un problema con una aplicacion web en asp.net:
    veras, como ya sabes asp trabaja con master pages, entonces tengo mi site.master y dentro de ella hay un contentplaceholder que muestra el contenido de las demas paginas;
    el problema esta que en el menu de site.master he incrustado un menu slide y dicho menu necesita una etiqueta form para que el bendito menu corra sin problemas.

    el problema esta que cuando yo agrego un webform nested al site.master en docho webformtengo cajas de texto y botones, los cuales necesitan una etiqueta formtambien para que corran.

    hasta aqui todo bien cuando corro el sitio y doy clic en la opcion del menu que me abre el formulario de textboxs y botones me dice el error:
    "Una página sólo puede tener una etiqueta Form de servidor."

    ResponderEliminar
  56. si le quito el form al menu me sale el error de que el menu necesita la etiqueta form y runat="server" para correr bien.
    no se que hacer o si algo hago mal

    el menu es un tipo de essentialobject
    te dejo el link directo del ejemplo que muestra la compañia:

    http://demo.essentialobjects.com/Demos/Menu/Designs/Red%20Tabs/Demo.aspx

    gracias de antemano.....

    ResponderEliminar
  57. hola MIND CORRUPTER

    el tema es que el tag form solo puedes definirlo una sola vez, si lo pones en la masterpafge entonces las paginas que utilicen esa master no podran tener otro form

    sino que ubicaran el contenido que estas definan en el asp:Content que se relaciona con los lugares que defina la master

    si alguna pagina de menu o alguna otra tiene un tag frm y estos esta dentro de la master deberias quitarlo

    saludos

    ResponderEliminar
  58. gracias por tu atencion leandro, figurate:
    mi problema estriba en que en el webform1 tengo un formulario para registrar un curso(dos textboxs y 4 botones) pero estos elementos requieren de una etiqueta form para correr dentro del site.master y si le quito la etiqueta al webform recibo este error:

    El control 'MainContent_txtNombre' de tipo 'TextBox' debe colocarse dentro de una etiqueta de formulario con runat=server.

    ResponderEliminar
  59. entiendo lo que me explicas y son las reglas basicas de asp.net, pero en mi caso en el site.master sucede lo mismo con el menu que te mostre, si no le pongo etiqueta form me sale el error que te mencione ayer y viceversa con el webform ese es el problema se que solo una etiqueta debe imperar en el sitio. que solucion me puedes plantear manteniendo dicho menu que es muy vistoso y para poder usar mis webforms, en resumen si no le pongo form al menu en site.master me da error de que debe de llevar una etiqueta form, si no le pongo form a los textboxs y botones de mi webform anidado al site.master me da error que deberia llevar form y runat y si les dejo form a los dos elementos(menu del site y al webform) sale el error que solo debe haber una etiqueta form....... gracias de antemano

    ResponderEliminar
  60. hola MIND CORRUPTER

    solo tienes que poner un solo tag form y este debe estar en el master page

    de esta forma engloba tanto al menu como el asp:content que definas para poner los controles en la pagina web

    o sea el asp:ContentPlaceHolder lo deebs poner dentro del tag form que definas en la master
    asi los controels del aspx caeran alli dentro

    saludos

    ResponderEliminar
  61. asi fue Leandro, enmi hora de ofuscacion no pude ver que abrir un form desde el menu y cerrarlo en el contentholder me surtio de maravilla
    muchas gracias....

    ResponderEliminar
  62. Buen día Leandro, ha sido de mucha utilidad el artículo que ha compartido se agradece por compartir sus conocimientos con la comunidad.
    Quisiera consultarle referente al tema, al momento de ejecutar el servicio web con el puerto que viene por default y hace el Invoke, me devuelve los valores que traigo de la base de datos que esta en SQL Server 2005 en XML. Pero al momento de publicarlo ya con la dirección IP de mi equipo y el puerto que se configuro (8080), si entro a la parte del webservice, al wsdl, pero ya al momento de invocar, no muestra tal como lo hace, por ejemplo localhost:5413/ServiceWeb.asmx.
    ¿Hay alguna configuración que se deba hacer o que pueda ser?
    De antemano, muchas gracias.

    ResponderEliminar
  63. hola Omar

    la verdad no entendi el planteo que realizas, veo que hay un web service que se conecta a sql server 2005 y trabaja con xml, por el Invoke imagino que realizas una llamada asincrona, no?

    ahora no mencionas si estas obteniendo algun error cuando invocas al servicio, o si cambias en la config del cliente la url al nuevo servidor

    saludos

    ResponderEliminar
  64. Hola de nuevo, gracias por su respuesta y disculpe si no me di a entender.Hice un web service y al momento de publicarlo en IIS e invocarlo, no me regresaba resultados, el xml. Esto era lo que me devolvia: System.Data.SqlClient.SqlException: The client was unable to establish a connection because of an error during connection initialization process before login.
    Esto al tener seleccionado el Identity con NetworkService o ApplicationPoolIdentity.
    Cambie esto por el de LocalSystem, y ahora si me pudo regresar el xml, con los valores. Pero he notado que al tenerlo configurado con LocalSystem, no puedo conectarme al servidor de SQL Server, mas si cambio LocalSystem por algun otra, si puedo.
    ¿Alguna idea de como pueda solucionarse? De antemano gracias.

    ResponderEliminar
  65. hola Omar

    el tema es que seguramente este usando seguridad integrada para conectarte al sql server, lo aconsejable es que impersones el sitio (esto lo puedes definir en el web.config) con un usuario que tenga acceso

    o sino defines en el connection string un usuario y password

    saludos

    ResponderEliminar
  66. Efectivamente eso erá Leandro. No tenía definido esto en el web.config el usuario, ni el impersonate.
    Muchísimas gracias por su aporte y tiempo Leandro.

    ResponderEliminar
  67. hola leandro
    muchas gracias por compartir este articulo

    Tengo la siguiente duda
    he creado en mi web.config la cadena conexion de la siguiente manera


    cuando corro en visual studio 2008 devuele true si es que se conecto

    Pero cuando lo agrego en mi IIS, no puede conectar con la base de datos de SQL Server 2008

    ResponderEliminar
  68. Ojala me pudieras ayudar mi correo
    es radilla_21@hotmail.com

    De antemano gracias

    ResponderEliminar
  69. hola antonio

    si habias puesto alguna imagen no puedo verla, por lo que no visualizo la cadena de conexion que defines


    pero mas alla de eso cuando subes al IIS si usas seguridad integrada con windows quizas debas cambiarlo y defnir usuario y password para conectarte

    recuerda que el IIS ejecuta como servicio por lo cual tiene un usuario asignado, este seguramente no tenga acceso a la db
    por eso es mejor definir un usu y pass explicito en el connection string

    saludos

    ResponderEliminar
  70. Hola leandro mi cadena conexion la tengo de la siguiente manera:

    add name="BDSqlServer" connectionString="Data Source=ACHTOSOFT-PC\SQLEXPRESS;database=BDUSUARIO; Integrated Security=True;"
    providerName="System.DataSqlClient

    Habia leido los comentarios de omar, y hice lo mismo de cambiar por LocalSystem, y funciono, pero no me percate que el firewall, lo tenia desactivado. Pero ahora que activo el firewall, me marca error de conexiones remotas.

    Ojala me pudieras ayudar

    ResponderEliminar
  71. hola antonio

    es que el firewall seguramente impida la conexion a sql server salvo que definas una exception en el firewall para permitir el acceso al puerto del sql server

    Configure Windows Firewall to Work with SQL Server

    saludos

    ResponderEliminar
  72. muchas gracias Leandro
    por tu ayuda y tiempo

    ResponderEliminar
  73. Hola como estas Leandro tengo un problema lo que pasa es que hice una web y no logro alojarlo en un linux en este caso quiero saber como puedo mirgrar mi proyecto web asp.net a html que deberia hacer por ayudame con este tema si mi correo es suarezsoport@gmail.com de antemano gracias.

    ResponderEliminar
  74. hola Jonathan

    pero si has creado paginas aspx es porque estas tienen algun tipo de logica en su cosigo que las hace dinamicas, si las conviertes en html seran paginas estaticas sin ningun tipo de evento o logica que puedas agregar

    quizas podrias investigar el uso de Mono para poder alojar paginas asp.net en linux

    http://www.mono-project.com/Compatibility

    http://monodevelop.com/

    o sino deberias ver de convertir asp.net en java o PHP

    saludos

    ResponderEliminar
  75. Buenas tardes leandro: me gustaria comentar que a como siempre tus post son buenisimos y muy detallado, y tambien a parte del comentario me gustaria saber como hacer un web service con certificacion ssl, es deir que pida identificacion al cliente que lo desee consumir.

    Saludos y espero tus comentario

    ResponderEliminar
  76. hola veronica

    que usa SSL no quiere decir que le vaya a pedir autenticacion al usuario, SSL es para asegurar la comunicacion, no para autenticar

    SSL asegura que el transporte de los datos no pueda ser interceptado y alterado, pero no evita que cualquiera los consume

    podrias habilitar en el servicio web en el IIS seguridad integrada con Windows, de esta forma quien lo consume deberia enviar las credenciales usando

    miService.Credentials = new NetworkCredential("UserName", "Password");


    saludos

    ResponderEliminar
  77. hola leandro, buenas tardes, es muy interesante tu articulo, y queria ver si me puedes ayudar, una amiga desarrollo una aplicacdion asp.net, instale IIS en windows 2008 server standard, y coloque ahi su aplicacion, puedo ver la ventana de inicio en un boruser de internet explorer pero al momento de solicitar las credenciales que toma del active directory, se queda ahi sin hacer nada, sera alguna configuracion en el IIS? por tu ayuda muchas gracias.

    ResponderEliminar
  78. hola Nora

    luego de autenticarte no se redirecciona a ninguna pagina en concreto
    que pasa si escribes en la url el nombre de una pagina aspx que tengas en el sitio, ingresa a la misma?

    saludos

    ResponderEliminar
  79. hola como puedo crear un cliente que pueda acceder a la pagina que se publique en el servidor del IIS, pero que no sea de forma local, es decir publico mi pagina o un web service y como accedo con un cliente. gracias.

    ResponderEliminar
  80. hola unsharp.dev

    pero sino es local entonces deberias contratar un hosting donde poder alojar la pagina web o servicio y que el cliente pueda accederla de forma publica desde cualquier sitio, lo haria por medio de internet

    o quizas crear un propia publicacion del servidor en internet, pero eso es bastante ams complejo

    saludos

    ResponderEliminar
  81. Holas tengo una aplicación web y trabajo con el IIS , lo que sucede es que necesito visualizar un reporte y al momento de ejecutar me sale un error que dice lo siguiente "error: Internal Server Error", alguien me podria ayudar please. Gracias.

    ResponderEliminar
  82. hola alan

    de que tipo de reportes estamos hablando ?

    esto sucede de forma local, o cuando pueblicas en el servidor web?
    digo localmente cuando ejecutas desde el VS funciona

    saludos

    ResponderEliminar
  83. buenas tardes!! alguien me podra ayudar.. tengo windows 7, visual studio 2012, IIS 7.0-... y quiero publicar una aplciacion web .. como le puedo hacer?... gracias

    ResponderEliminar
  84. hola raul

    VS2012 tienes las mismas opciones de "publish" que el VS2010 por lo que podrias seguir parte de lo planteado en este articulo

    lo unico que faltaria validar es si tienes habilitado el IIS en windows, pero para eso seria habilitar el servicio y tener el framework de .net, imagino el 4.5 integrado al iis

    no lo mencionas pero supongo que el iis esta en una maquina independiente a la usada para desarrollar

    saludos

    ResponderEliminar
  85. Estimados.

    Tengo un problema al hacer la publicación del Webservice.

    De forma local funciona bien, el problema esta cuando ya se publica en el servidor IIS alli me sale el siguiente error.
    =================================
    HelloWorld

    Prueba

    El formulario de prueba sólo está disponible para solicitudes del equipo local.
    =================================

    Por favor, si alguien me pueden ayudar le estaré muy agradecido.

    ResponderEliminar
  86. hola Melvin

    tienes que habilitar por configuracion para poder acceder remoto a la pagina por defecto

    How to enable the remote test page(invoke button) for webservice in live environment?

    saludos

    ResponderEliminar
  87. Hola Leandro

    Está muy bueno e interesante tu artículo, tengo una pregunta con una publicación de un Sitio Web en el IIS.

    Realicé la publicación del sitio web y lo monté en el IIS y funciona bien, me muestran los resultados como debe ser, pero el problema es que una sola de muchas consultas que se realizan, no me trae resultados; esa consulta tiene resultados en la base de datos, hago la prueba en el equipo local y me muestra los resultados, pero en el IIS no me muestra nada solo para esa consulta, para las demás si está bien.

    Espero me colabores porfa, muchas gracias.

    Eduardo García

    ResponderEliminar
  88. Hola Leandro muy buen aporte.

    Tengo una pregunta, tengo un sitio que ya está configurado pero al momento acceder muestra el siguiente error:
    Server Error in '/Consultas' Application.

    Could not load file or assembly 'interfacePago' or one of its dependencies. An attempt was made to load a program with an incorrect format.
    interfacePago es una dll y por su puesto esta en la carpeta de la publicación; ahora bien la aplicación se desarrollo en un equipo de 32 bits y lo estoy subiendo en un windows de 64 bits (asumo que es por eso el error), voy a la configuración de Grupos de Aplicaciones en el IIS y habilito las
    aplicaciones de 32 bits.
    El caso es que cuando ejecuto nuevamente mi aplicación los servicios se detienen (los habilito y se vuelven a detener al ejecutarlo) y me muestra este error:
    Service Unavailable
    HTTP Error 503. The service is unavailable.
    No se que mas pueda hacer para que corra la aplicación.. Espero me puedes colaborar ya que es el primer sitio que subo.

    Un Saludo
    Kliri

    ResponderEliminar
  89. Hola Leandro, excelente contenido, felicitaciones.

    Tengo una duda: Tengo una solución en VS2010, la cual tiene 5 capas (o proyectos) los cuáles uno de ellos tiene el Web Service; y está la referencia como Proxy a la capa de Presentación o UI. Cuando realizo el despliegue en el IIS me genera una excepción:"Ha ocurrido un error iniciando sesiónSystem.Net.WebException: No es posible conectar con el servidor remoto ---> System.Net.Sockets.SocketException: No se puede establecer una conexión ya que el equipo de destino denegó expresamente dicha conexión 127.0.0.1:49799".

    Cambio el puerto en el IIS pero no funciona. ¿Que procedimiento estoy omitendo?

    Quedo atento.

    Muchas gracias.

    Saludos.

    ResponderEliminar
  90. hola Johann

    pero estas poniendo el sitio en el puerto 49799 ?

    validaste que la url que define en e web.config donde esta ubicado el asmx sea la del mismo sitio

    lo planteo porque me sunea raro usar ese puerto en el IIS cuando haces el dpeloy del sitio web

    imagine que las paginas aspx y los servicio web asmx estarian en el mismo sitio web
    o si estan en un sitio separado se use un puerto mas estandar como ser el 80, 81, 8080, etc

    si pones la url de asmx en el browser esta resuleve de forma correcta mostrando el sitio por defecto del servicio web

    saludos

    ResponderEliminar
  91. Hola hola saludos, quiero consultarte algo referente a unos errores que me salen, al momento de poner una aplicacion web en el IIS, lo que sucede es lo siquiente en la aplicacion se usan reportes hechos en crystal report pero al momento de ejecutar la aplicacion no me muestra los reportes me marca error de "Acceso denegado dts connecction", y quiero saber si en el IIS necesito meter algo del crystal o que puede ser, espero me respondas ya que si me urge resolver esto, de antemano gracias

    ResponderEliminar
  92. hola Alejandra

    el reporte crystal lo estas conectando directo a la db o creas un dataset tipado que asignas como report source para asignar los datos

    si lo conectas directo se que desde codigo debes redefinir la base de datos

    saludos

    ResponderEliminar
  93. Como publico en internet este contenido?

    ResponderEliminar
  94. hola Mambin

    si tienes un hosting podrias simplemente subir al sitio lo que el VS deja como publicacion en la carpeta de la pc local

    ahora si quieres exponer tu pc a internet eso es otro tema muy distinto ya que hay que abrir puertos en el router/firewall y mapear la ip y puerto de WAN con el de LAN

    saludos

    ResponderEliminar
  95. Hola quiera saber como hago mi conexión en IIS si tengo el web.config este tipo de conexion.

    configuration

    appSettings
    add key="PROVEEDOR_ADONET" value="System.Data.SqlClient"/
    add key="CADENA_CONEXION" value="Data Source=(local);Initial Catalog=MasterC;Integrated Security=True"/
    /appSettings
    system.web
    compilation debug="true"/
    /system.web
    /configuration

    ya que este lo utilizo en una clase para conectar con diferentes base de datos con por ejemplo,

    private void Configurar() {
    try
    {
    string proveedor = ConfigurationManager.AppSettings.Get("PROVEEDOR_ADONET");
    this.CadenaConexion = ConfigurationManager.AppSettings.Get("CADENA_CONEXION");
    BaseDatos.factory = DbProviderFactories.GetFactory(proveedor);
    }
    catch (ConfigurationException ex)
    {
    throw new BaseDatosExcepcion("Error al cargar la confiracion...!",ex);
    }
    }
    Gracias quisiera a ver si me puedes ayudar.

    ResponderEliminar
  96. hola Jimmi

    el codigo parece estar correcto

    Obtención de DbProviderFactory

    pero no deberias quedarte solo ahi, sino despues obtener la conexion

    Creación de comandos y recuperación de datos

    saludos

    ResponderEliminar
  97. Hola Leandro...
    Con respecto a la pregunta que realice el día 31 de marzo de 2014, 10:41 (Could not load file or assembly 'interfacePago' or one of its dependencies. An attempt was made to load a program with an incorrect format)...
    Pues olvide escribir la solución al fallo y quizá a otros le suceda lo mismo.

    Ya había escrito que cambiando o habilitando la opción de aplicaciones de 32 Bits a true seguía arrojando errores, lo que tuve que hacer fue mover esa DLL ('interfacePago') a la carpeta de COM e instalar en el servidor el runtime de Crystal Report 10 que tambien hacia falta.....

    Kliri... :)

    ResponderEliminar
  98. buenos dias leandro
    acudo a tu ayuda ya que estado buscando solucion en la web y no la encontrado y que ya estoy algo desesperado tengo una aplicacion web la cual edecidido probarla en mi pc de desarrollo activando el iis como tu lo ilustras en el tutorial, todo perfecto la veo desde otros equipos pero con los reportes tengo un problema ya que no me los muestra, "me deja el frm web en blanco y en el try catch no me genera ningun error " en la carpeta bin estan los dll de crystal

    ResponderEliminar
  99. hola Fredy

    instalaste en ese equipo donde esta el IIS el redistribuible de crystal?

    no se que version VS estas utilizando, pero deberias instalar el redistribuible para contar con las dll del crystal

    saludos

    ResponderEliminar
  100. estoy trabajando con vb.net2010 vb tengo instalado el paquete de crystal v. 13.0.6 para visual 2010 cuando ejecuto la aplicacion desde visual me funcionan bien los reportes
    las dll las tome de la siguiente ruta
    C:\Program Files (x86)\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Common\SAP BusinessObjects Enterprise XI 4.0\win32_x86

    ResponderEliminar
  101. hola Fredy

    una duda, desde que browser estas accediando a la pagina del reporte? porque no se si todos los browsers soportan el crystalreportviewer

    ademas en el servidor donde esta el iis instalastes las redistribubles de crystal?

    saludos

    ResponderEliminar
  102. Me faltaba cambiar a NetwokService.... gracias a tu articulo tengo acceso a la data en mi web service.. Muchas gracias...

    ResponderEliminar
  103. Hola que tal tengo un error y ya llevo varios días intento reolverlo estoy tratando de publicar un web site que hice en visual studio 2010 en asp.net framework 4

    para generarlo voy a la pestaña generar y le doy en publicar sitio luego publico como sistema de archivos dentro de mi inetpub/wwwroot y cuando ingreso al localhost me dice un error

    Error de servidor en la aplicación '/'.

    Error de configuración
    Descripción: Error durante el procesamiento de un archivo de configuración requerido para dar servicio a esta solicitud. Revise los detalles de error específicos siguientes y modifique el archivo de configuración en consecuencia.

    Mensaje de error del analizador: Atributo 'targetFramework' no reconocido. Tenga en cuenta que en los nombres de atributo se distinguen mayúsculas y minúsculas.

    Error de código fuente:



    Línea 11:
    Línea 12:
    Línea 13:
    Línea 14:
    Línea 15:

    Archivo de origen: C:\inetpub\wwwroot\web.config Línea: 13

    en el administrador de iis en la pestaña de grupo de aplicaciones ya mi aplicación le cambie la versión del framework de la v2.0.50727 a la v4.0.30319 y cuando refresco el navegador me sale la pantalla en blanco voy consola de desarrollador y me dice el error 500 internal server ya probe de todo y aun no logro nada porfavor ayuda.

    He probado con paginas .HTML y .asp y esas si las lee, cree un hola mundo en .aspx y nada mas no funciona me dicel internal server


    ojala me puedan ayudar

    ResponderEliminar
  104. Buenos dias muchas gracias por tu aportacion me fue de mucha ayuda, solo una pregunta como le hago para publicar un pagina web que maneja los controles membershio de asp.net

    estoy usando visual basic 2010

    ResponderEliminar
  105. hola Marco

    cuando muestra el error 500 puede deverse a que el Application Pool que asignas al sitio no esta iniciado, podrias validar esto en el IIS

    no se que version de windows utilizas, pero porque no pruebas publicar en un sitio nuevo creado en el iis al cual le asignas un puerto, de esta forma podras separar las aplicaciones, salvo que quieras usar el pueto 80

    saludos

    ResponderEliminar
  106. hola Hector

    los controles membership? si son controles que ubiscas en tu pagina no tienes que hacer nada especial solo configurar la seguridad en el web.config

    ahora si te refieres a las tool de WAT (Web Site Administration Tool), me temo que no funcionan desde el iis

    Is there a ASP.NET web site administration tool in IIS?

    deberias crear tus propias paginas de asp.net para administrar la seguridad del sitio
    usando las librerias de asp.net membership
    saludos

    ResponderEliminar
  107. se puede copiar un codigo que esta hecho en VS 2010 y pasarlo a VS
    2008 sin problemas

    ResponderEliminar
  108. hola Ricardo

    en principio deberias poder hacerlo sin problemas

    salvo que en ese codigo uses alguna libreria que sea exclusiva de .net 4 (el cual podrias estar usando con VS2010) y no este disponible en .net 3.5 (el cual usarias con VS2008)

    si este no es el caso no deberias tener problemas

    saludos

    ResponderEliminar
  109. Hola Leandro, tengo una aplicacion Web con vs2010, debe de accesar unas carpetas externas en una pc con windows server 2008, el caso es que en el ambiente de desarrollo accesa y en el sitio publicado no puede accesar, como podria lograr esto?

    ResponderEliminar
  110. Buenos días Leandro... muy interesante el artículo... te pregunto... he seguido los pasos tal y como describes en éste, pero me sale un error: "Bad Request - Invalid Hostname.. HTTP Error 400. The request hostname is invalid."; si no es éste, me sale que "No se ha configurado un documento predeterminado para la dirección URL solicitada y el examen de directorios no está habilitado en el servidor.".. quedo atento a tus comentarios, muchas gracias

    ResponderEliminar
  111. Hola Leandro,

    aplica lo mismo para Visual Studio 2013 y IIS 8 ?

    Saludos.

    ResponderEliminar
  112. hola Aaron

    deberia ser muy similar, quizas cambie un poco el aspecto del iis

    pero los pasos son los mismso

    saludos

    ResponderEliminar
  113. Hola Leandro,
    Tengo un problema cuando publico a traves del IIS un sitio web, el cual está construido en Visual Studio 2010 Professional y trabaja con una base de datos en Sql Server 2008 R2. Al probarlo de manera local desde Visual Studio el sitio funciona perfectamente, pero al publicarlo a través del IIS7 no funciona como se espera. Inicialmente, el sitio web se dirige a una página de login y al ingresar credenciales validas, muestra los mensajes de error al autenticar (El usuario o la contraseña no son validos). Ya revise el Web.config y está correcto. Es algún error de configuración del IIS? Agradecería mucho alguna luz que me puedan brindar, pues no encuentro donde está el error.

    ResponderEliminar
  114. Buenos días Leandro.

    Tengo un pequeño inconveniente cuando publico mi sitio web en IIS. La idea es que el sitio funcione en la intranet de la empresa por lo que al ingresar al sitio éste debe reconocer el usuario que esta loggeado en la máquina e ir a buscar otros datos del directorio activo. El problema se presenta en que tan pronto escribo la URL el sitio me pide usuario y password y pues no debería ser así ya que el usuario esta conectado desde un equipo interno de la empresa.
    Los permisos de autenticación que le tengo son: Anonymous Authentication: Disabled; ASP .NET Impersonation: Enabled; Basic Authentication: Enabled; Digest Authentication: Disabled; Forms Authentication: Disabled; Windows Authentication: Enabled.

    Te agradezco mucho si me puedes dar algún comentario sobre esto. Gracias.

    ResponderEliminar
  115. Hola Muy Buenas tardes
    Tengo un problema al publicar mi servicio me aparece este error


    Line 1: <%@ WebService Language="C#" CodeBehind="ServicioAndroid.asmx.cs" Class="ServicioWebAndroid.ServicioAndroid" %>

    ya hice varios cambios y nada me sigue apareciendo el mismo error
    el iis es el 6 donde los estoy publicando

    ResponderEliminar
  116. Buenas dias Leandro.

    Muy interesante y completo tu artículo.

    Tengo un problema con un servicio web, que estaba trabajando bien en Windows XP, he instalado el mismo servicio web en Windows 7 y trabaja muy bien, excepto cuando uso las opciones de impresión, me explico, dentro de servicio web hay opciones de impresión que imprimen documentos en impresoras conectadas a otros equipos de la red interna, identificados a través del IP de la maquina el nombre de la impresora, cuando el servicio web trabajaba en Windows XP no hay problema con la impresión, en cambio cuando instalo el servicio web en Windows 7 no envía ningún error, simplemente no imprime nada.

    Gracias por la atención, apreciaría mucho tus comentarios.

    ResponderEliminar
    Respuestas
    1. hola
      Pero la impresion se realiza desde el servidor ?
      Recuerda que las impresoras se configuran para los usuarios de esa pc, si el usuario con el cual ejecuta el Application Pool asignado al sitio no tiene esas impresoras conectadas no podra imprimir
      saludos

      Eliminar
    2. Hola Leandro.

      Muchas gracias por la respuesta.

      El servicio web está instalado en tres computadoras, sólo una de ellas tiene instalada la impresora, el sistema se opera desde equipos móviles (colectores de datos) que se cuelgan al servicio web de cualquiera de las 3 computadoras, se pueden hacer consultas a la base de datos y también enviar impresiones a la computadora que tiene instalada la impresora. Hasta ahora estas tres computadoras estaban configuradas con Windows XP y no habíamos tenido problemas, pero he tenido que reemplazar una computadora y la nueva está configurada con Windows 7, le he instalado el servicio web y trabaja bien pero las opciones de impresión no funcionan. Al parecer no reconoce la dirección de la pc con Windows xp donde está conectada la impresora (\\192.168.1.44\TSCPro)
      He estado revisando y pensé que tal vez sea la dirección de la impresora, que desde Windows 7 sea diferente, como ocurre con la dirección para cargar el servicio web, pese a estar instalado en la misma dirección C:\inetpub\wwwroot, la ruta es diferente.
      En window XP es: http://192.168.1.44/swiberica/dbperu.asmx
      En Windows 7 es: http://192.168.1.105/dbperu.asmx

      Gracias por la atención.

      Saludos.

      Eliminar
  117. Una consulta Leandro. tengo un proyecto en c# y tengo 50 formularios de .aspx como haria solo para publicar un solo formulario .aspx me ensañarias los paso porfavor.

    ResponderEliminar
    Respuestas
    1. hola
      Si tienes 50 webform cuando publicas lo haces de todo el sitio, no de una parte. Quizas podrias usar la opcion "publish" del VS, a una carpeta local de tu pc, luego eliminas los aspx que no quieres llevar al sitio productivo.
      saludos

      Eliminar
  118. Leandro, ayudeme en una consulta, es posible invocar reportes crystal desde una librería, utilizo en .NET 2013, he estado googleando pero no encuentro nada a lo referente...Gracias de antemano por tu colaboracion..

    ResponderEliminar
  119. Hola Leandro;
    heredé una aplicación de evaluaciones tipo web ASP. Tiene programación de visual basic, javascrit y ASP y ASA. y tiene la base de datos en SQL.

    En servidores anteriores copaiba la información del InetPub atachaba la base de datos en el Nuevo SQL y cabiaba una línea de string en un archive que se llama Global.asa

    Ahora tengo WIndows 2012R2 y SQL2014. Y el problemas está en que cambio la línea y en esta vez cuando se escribe el password estanto en la página de la aplicacion tira un error. Regreso la línea como estaba y entra pero mirando la base de datos del servidor Viejo.

    Te copio la línea a ver si me puedes arrojar Luz. Gracias

    Application.Lock();
    Application("ConnectionString") = "Provider=SQLOLEDB;Data Source=Server1;Initial Catalog=EvaluacionesDatabase;User ID=sa;Password=xxxxxxxxx ;";
    Application("Header") = "" +

    ResponderEliminar
  120. Que tal Leandro.
    Tengo una pagina web publicada en IIS, el detalle es que en un momento cuando doy clic a un botón ejecuto un .exe para abrir una aplicacion de DigitalPersona para capturar una huella. El detalle es que cuando ejecuto la solución desde el VisualStudio y doy clic al botón si me abre el .exe pero publicada en IIS no me lo abre. Ya di permisos en las carpetas y no abre. Tienes idea de que puede ser?

    ResponderEliminar
    Respuestas
    1. hola
      resulta que cuando ejecutas desde el VS el servidor y clientes estan en tu pc de desarrollo, por eso puedes ver la aplicacion ejecutar. En cambio cuando ejecuta en el IIS esta esta en el servidor web y alli aplican temas de seguridad por ejecutar dentro de un servicio, por lo que no vas a poder visualizar la aplicacion. Ejecutar deberia hacerlo, al menos deberias poder ver la aplicacion en el task manager, ahora en pantalla no vas a visualizarlo.
      saludos

      Eliminar
    2. Muchas gracias Leandro, entiendo, entonces no habrá hay manera de visualizarlo de ninguna forma?

      Eliminar
    3. Me temo que no, no al menos con una interaccion visual
      Recuerda el servidor esta en una pc distinta al cliente que lo accede con el browser, esto es mas alla del servicio que comente

      Eliminar
    4. ¿Pero aunque lo esté ejecutando de manera local? He pensado en poner el ejecutable en una carpeta del escritorio o de Mis documentos por ejemplo pero aun así no se si pueda abrirlo. Todo funcionará de manera local

      Eliminar
    5. por temas de permisos la aplicacion deberia estar dentro de la estructura del sitio web

      Eliminar
  121. ¿O sabes si se pueden trabajar las librerías de DigitalPersona en un proyecto Web?
    Gracias por tus respuestas!

    ResponderEliminar
  122. no tengo expriencia en estas librerias que mencionas, si acceden a aun dispositivo de la pc quizas debas crear una aplicacion winform que ejecute local y el resultado lo subes a un web service

    ResponderEliminar
    Respuestas
    1. Hola Leandro . . .

      Mi problema es que tengo desarrollada una aplicacion MVC 4 en cshtml y no la he podido instalar el el servidor IIS, te pido de favor un tip para poderlo hacer...

      Gracias

      Eliminar
  123. Hola Leandro un gusto en saludarte yo ya tengo arriba mi servidor windows 2008 y mi aplicación con un dominio propio lo más raro es que si conecta desde fuera de la red interna en algunos lugares y en otros no, estuve leyendo que es algo de los dns alguna idea o sugerencia te lo agradecería.

    ResponderEliminar
  124. Buenas tardes Estimado Leandro Tuttini

    favor puedes ayudarme tengo un proyecto web realizado en VS2010 Y SQL SERVER 2008 , Cuando deseo ingresar al formulario de grabar registro me marca el siguiente error

    Server Error in '/' Application.

    Object reference not set to an instance of an object.

    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

    Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

    Source Error:

    An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

    Stack Trace:


    [NullReferenceException: Object reference not set to an instance of an object.]
    pageequipos.Page_Load(Object sender, EventArgs e) +200
    System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +24
    System.Web.UI.Control.LoadRecursive() +70
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3047


    Adicional no puedo ingresar utilizando la pantalla donde se registran los usuarios, sale un error tengo 2 paginas master

    Mis correos son xxavier.ggutierrez@gmail.com o bien xxavier_ggutierrez@hotmail.com

    Un millon de gracias
    Slds
    Xavier Gutierrez
    Costa rica

    ResponderEliminar
  125. Mi nombre es Rivera, estoy aquí para testificar acerca de
    Dr. BAZ, es lo mejor que tiene incluso
    Me sucedió en esta vida, me trajo de vuelta mi
    Ex marido después de 6 meses de separación he intentado
    Mucha gente, pero no pudieron evitarlo.
    BAZ lo hizo por mí, estoy muy feliz, si usted es
    Tener problemas en su relación no se molestan
    Es suficiente contactarlo y seguir siendo bendecido.
    DRBAZSPELLHOME@GMAIL.COM
    contacto con él en Whatsapp +2348066141253
    Se especializa en lo siguiente

    1. HERPES
    2. Fiebre de Lassa
    3. GONORRÉEA
    4. VIH / SIDA
    5. BAJA CUENTA ESPERMA
    6. MENOPAUSIA ENFERMEDAD
    7. EPILEPSIA
    8. ASEPSIS
    9. CÁNCER
    10. DEPRESIÓN DE LA ANSIEDAD
    11. PROBLEMA DEL EMBARAZO
    12. ALS
    13. VPH
    14. EXTENSIÓN DE CUALQUIER TIPO
    Quítate tu amor
    ¡Póngale en contacto con y permanezca bendecido !!

    ResponderEliminar
  126. hola Leando, tengo un problema al publicar mi aplicacion web en un servidor que esta en mi misma red, al querer acceder a la aplicacion por medio del ip del servidor solo me muestra la pagina de iis de windows, he seguido los pasos que pones en esta pagina pero igual me sale solo la pagina del iis

    ResponderEliminar
  127. ESQUEMA DE PRÉSTAMO DE FINANZAS JAMESON

    Un plan de negocios diseñado para afectar las vidas de personas en todo el mundo positivamente. Ofrecemos préstamos privados, comerciales y personales con una tasa de interés anual del 4%.
    Nuestros préstamos están bien asegurados, para la máxima seguridad es nuestra prioridad.

    Nuestra organización es un representante designado de FSA (Finance Industry Standards Association) y está autorizado / regulado por Financial Services Authority (FSA).
    Solicite amablemente un préstamo a través de nuestro correo electrónico: theodorejamesonfinance@hotmail.com con la siguiente información:

    (1) Nombre:
    (2) Monto del préstamo necesario:
    (3) Préstamo de duración:
    (4) Número de teléfono:
    (5) País:

    Gracias.

    Sr. Theodore
    Director de Consultoría y Logística
    theodorejamesonfinance@hotmail.com

    ResponderEliminar
  128. Hola, quiero publicar mi sitio web con base de datos de c# en IIS pero es necesario ener windows server?, mi trabajo consiste en que mi sitio web sea local y solo el servidor se comunique con otra maquina pero tengo windows 7 , se puede hacer de alguna manera en iis con base de datos?

    ResponderEliminar
  129. Hola Leandro, si en lugar de comprobar el funcionamiento de la web con localhost:7070/nombreweb quiiero hacerlo con el número ip de mi máquina, ¿qué tengo que hacer? he probado hacerlo directamente y me sale error. Si a la ip le añado el puerto me sale otro error diferente. ¿hay que hacer algo extra?

    ResponderEliminar
  130. tengo un sitio en IIS, y funciona bien en la red LAN, pero no funciona para afuera de la LAN, pense primero que era el firewall pero ya probe con otros sitios con apache y se ven bien afuera, algo me puede faltar por configurar en el IIS, me podrian ayudar??

    ResponderEliminar
  131. Me ha parecido bastante interesante éste artículo, ahora para el verano lo más genial que sugiero es un bonito estampado de playeras, y se pueden escoger los mejores diseños.

    ResponderEliminar