agregar lo siguiente en el appSettings del web.config:
<add key="aspnet:MaxHttpCollectionKeys" value="2147483647" />
<add key="aspnet:MaxJsonDeserializerMembers" value="2147483647" />
lunes, 12 de diciembre de 2016
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:
<add baseAddress="http://localhost:8732/Design_Time_Addresses/SMV.EncuestaSC.WCF/ServiceSC/" />
por la url que corresponda en el servidor web.
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)
(*)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.
martes, 22 de marzo de 2016
GroupBy usando expresiones lambda
A continuación, voy a mostrarles como utilizar GroupBy con expresiones lambda. Para estos ejemplos se utilizará la siguiente lista:
Caso 1: Agrupación por solo un campo + operador adicional
en el siguiente ejemplo se obtiene la suma de "Sueldos" por año.
Caso 2: Agrupación por varios campos + operador adicional
en el siguiente ejemplo se obtiene la suma de "Sueldos" por año y número.
Caso 3: Uso de GroupBy como reemplazo del Distinct
el siguiente ejemplo aplica el distinct sobre el campo: "ANIO":
en caso se tenga se tenga que aplicar varios campos se utilizará lo siguiente:
Saludos
Dim lista As New List(Of Object) lista.Add(New With {.ANIO = 2014, .NUMERO = "1521", .SUELDO = 10}) lista.Add(New With {.ANIO = 2015, .NUMERO = "1521", .SUELDO = 20}) lista.Add(New With {.ANIO = 2015, .NUMERO = "1522", .SUELDO = 5}) lista.Add(New With {.ANIO = 2015, .NUMERO = "1522", .SUELDO = 5})
Caso 1: Agrupación por solo un campo + operador adicional
en el siguiente ejemplo se obtiene la suma de "Sueldos" por año.
Dim p1 = lista.GroupBy(Function(g) g.ANIO).Select(Function(a) New With {.numero = a.Key, .sum = a.Sum(Function(p) p.SUELDO)}).ToList
Caso 2: Agrupación por varios campos + operador adicional
en el siguiente ejemplo se obtiene la suma de "Sueldos" por año y número.
Dim p2 = lista.GroupBy(Function(g) New With {Key g.ANIO, Key g.NUMERO}). _ Select(Function(a) New With {.anio = a.Key.ANIO, .num = a.Key.NUMERO, .sum = a.ToList.Sum(Function(p) p.SUELDO)}).ToList
Caso 3: Uso de GroupBy como reemplazo del Distinct
el siguiente ejemplo aplica el distinct sobre el campo: "ANIO":
Dim p3 = lista.GroupBy(Function(g) g.ANIO).Select(Function(a) a.First).ToList
en caso se tenga se tenga que aplicar varios campos se utilizará lo siguiente:
Dim p4 = lista.GroupBy(Function(g) g.ANIO And g.NUMERO).Select(Function(a) a.First).ToList
Saludos
Suscribirse a:
Entradas (Atom)