lunes, 17 de abril de 2017

Convertir una Imagen a Byte y Byte a Imagen

Las siguientes funciones convierten una imagen desde una ruta física a byte y viceversa...
 
Public Function ConvertirImagen_Byte() As Byte()
    Dim rutaImagen = "D:\Documentos\ImagenOrigen\s1.jpg"
    Using foto As FileStream = New FileStream(rutaImagen, FileMode.Open)
        Dim reader As BinaryReader = New BinaryReader(foto)
        Dim imagen(foto.Length) As Byte
        reader.Read(imagen, 0, Convert.ToInt32(foto.Length))
        Return imagen
    End Using
End Function


Protected Sub ConvertirByte_Imagen(ImgBytes As Byte())
    Dim ruta As String = "D:\Documentos\ImagenDestino\s1.jpg" 
    Dim ms As MemoryStream = New MemoryStream(ImgBytes)
    Dim imagen = New System.Drawing.Bitmap(ms)
    imagen.Save(ruta, System.Drawing.Imaging.ImageFormat.Jpeg)
End Sub

jueves, 23 de marzo de 2017

Alert() con salto de línea.

Muchas veces es necesario incluir en un alert varios mensajes de error, la siguiente solución esta planteada para vb.net y C# con Javascript.

VB.NET:
 
Dim strMensaje As String = ""
strMensaje += "- Ingrese texto A." + "\r\n"
strMensaje += "- Ingrese texto B." + "\r\n"
ScriptManager.RegisterStartupScript(Me, Me.GetType, "alerta", "alert('" & strMensaje & "');", True)

C#:
 
String strMensaje = "";
strMensaje += "- Ingrese texto A." + "\\n";
strMensaje += "- Ingrese texto B." + "\\n";
ScriptManager.RegisterStartupScript(this, this.GetType(), "alerta", "alert('" + strMensaje + "');", true);


Saludos.

lunes, 12 de diciembre de 2016

Gridview no se muestra a mayor cantidad de resultados

agregar lo siguiente en el appSettings del web.config:

<add key="aspnet:MaxHttpCollectionKeys" value="2147483647" />
<add key="aspnet:MaxJsonDeserializerMembers" value="2147483647" />

jueves, 13 de octubre de 2016

Web config en Servicio WCF

Hola a todos, al elaborar y publicar servicios WCF, muchas veces no recordamos que colocar en el config; por tal motivo les comparto un ejemplo básico de lo que debería contener:
 

  
    
  
  
    
    
  
  
    
      
        
        
        
          
            
          
        
      
    
    
      
        
          
          
        
      
    
    
      
        
          
          
        
      
    
  


Nota:
Al publicar tu servicio, se deberá modificar la url de la sección :
<add baseAddress="http://localhost:8732/Design_Time_Addresses/SMV.EncuestaSC.WCF/ServiceSC/" />
por la url que corresponda en el servidor web.

viernes, 22 de julio de 2016

COM Excel - Word error: 80070005 Acceso denegado IIS

En mi caso, mi aplicación al tratar de modificar un archivo excel me mostraba el siguiente error:

Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error: 80070005 Access is denied.

la solución que encontré es lo siguiente:

a) Si la app se esta usando ApplicationPoolIdentity, realizar lo siguiente:
  • Presionar las teclas “Windows + R”; ingresar el texto dcomcnfg y presionar el botón Aceptar
  • Servicios de componentes -> Equipos -> Mi PC -> Configuración DCOM, buscar “Microsoft Excel Application” y seleccionar botón derecho propiedades.
  • En Pestaña Identidad, elegir la opción "El usuario interactivo"
  • En pestaña Seguridad, editar para todos los “Customize”, el usuario “IIS_IUSRS“ (si no lo encuentras, búscalo en localización: “Servidor” )

b) Si la app esta usando usuario de aplicación, otra opción sería realizar lo siguiente:
  • Presionar las teclas “Windows + R”; ingresar el texto dcomcnfg y presionar el botón Aceptar
  • Servicios de componentes -> Equipos -> Mi PC -> Configuración DCOM, buscar “Microsoft Excel Application” y seleccionar botón derecho propiedades.
  • En Pestaña Identidad, elegir la opción "Este Usuario" (colocar el usuario de aplicación)
(*) En caso no encuentren "Microsoft Excel Application", pueden probar ingresar a través de la ruta C: WINDOWSSysWOW64> mmc comexp.msc o ejecutando el siguiente comando: mmc comexp.msc /32

(*)Si es archivo word:
realizar los mismos pasos anteriores, pero buscar " Documento Microsoft Word " y / o " Aplicación Microsoft Word " o “Microsoft Word 97 -2003 Document” o algo que diga Word. si aun no encuentra buscar "{00020906-0000-0000-C000-000000000046}".







miércoles, 20 de julio de 2016

ImageButton error Sys.WebForms.PageRequestManagerServerErrorException

Hola..
Posiblemente al trabajar con ImageButton; se les presente el siguiente error:

Sys.WebForms.PageRequestManagerServerErrorException input string was not in a correct format

La solución que encontré después de buscar durante dias :'( fue agregar lo siguiente despues del tag HTML:

 

viernes, 10 de junio de 2016

Enviar correo con imágenes incrustadas

Hola a todos.
Por si alguna vez les piden que envíen correos con imágenes; acá les comparto una forma de poder realizarlo:

 
Public Sub CorreoNet(ByVal CorreoDestinatario As String, CorreoDestinatarioCopia As String, ByVal CorreoRemitente As String, ByVal Name As String, _
                     ByVal Asunto As String, ByVal Host As String)
        'Mensaje:
        Dim Mensaje = "Hola mundo... cargando imagen: "

        Dim reader = File.ReadAllBytes("D:\Demo\Imagenes\iGrupo.png")
        Dim image1 = New MemoryStream(reader)
        Dim av = AlternateView.CreateAlternateViewFromString(Mensaje, Nothing, System.Net.Mime.MediaTypeNames.Text.Html)

        Dim headerImage = New LinkedResource(image1, System.Net.Mime.MediaTypeNames.Image.Jpeg)
        headerImage.ContentId = "companyLogo"
        headerImage.ContentType = New Mime.ContentType("image/png")
        av.LinkedResources.Add(headerImage)

        'Configuracion Mensaje:
        Dim Correo = New Mail.MailMessage()
        Correo.To.Add(CorreoDestinatario)
        If Not CorreoDestinatarioCopia = "" Then Correo.CC.Add(CorreoDestinatarioCopia)
        Correo.From = New Mail.MailAddress(CorreoRemitente, Name, Encoding.UTF8)
        Correo.Subject = Asunto
        Correo.SubjectEncoding = Encoding.UTF8

        'Correo.Body = Mensaje
        Correo.AlternateViews.Add(av)
        Correo.BodyEncoding = Encoding.UTF8
        Correo.Priority = Mail.MailPriority.High
        Correo.IsBodyHtml = True

        'Configuracion SMTP:
        Dim Servidor = New Mail.SmtpClient
        Servidor.Host = Host

        'Enviar Correo:
        Try
            Servidor.Send(Correo)
        Catch ex As Mail.SmtpException
            Throw ex
        End Try
    End Sub
End Class

Ademas deberás incluir incluir los siguientes "Imports":
Imports System.Net
Imports System.Text
Imports System.IO
Imports System.Net.Mail
Saludos.