viernes, 30 de noviembre de 2012

Operación no válida dado el estado actual del objeto

Descripción: Excepción no controlada al ejecutar la solicitud Web actual. Revise el seguimiento de la pila para obtener más información acerca del error y dónde se originó en el código.
Detalles de la excepción: System.InvalidOperationException: Operación no válida dado el estado actual del objeto.
Error de código fuente:

Se ha generado una excepción no controlada durante la ejecución de la solicitud Web actual. La información sobre el origen y la ubicación de la excepción pueden identificarse utilizando la excepción del seguimiento de la pila siguiente.

Seguimiento de la pila:

[InvalidOperationException: Operación no válida dado el estado actual del objeto.]

Contexto


La pagina Web que se está enviando (POST) tiene más de mil llaves de identificación en el formulario.


Solución en mi caso


La actualización de seguridad MS11-100 de Microsoft limita el número máximo de miembros JSON, archivos y claves de formulario a 1000 en una solicitud HTTP. Debido a este cambio, las aplicaciones ASP.NET rechazan las solicitudes que contengan una cantidad de estos elementos superior a 1000. Los clientes HTTP que realicen estos tipos de solicitudes serán denegados y aparecerá un mensaje de error en el explorador web. El mensaje de error tendrá normalmente un código de estado HTTP 500. Este nuevo límite puede configurarse en función de las aplicaciones. Consulte la sección "Resolución" para obtener instrucciones de configuración.

Se configuró a 5500 en el APP config.



   1: <appSettings>
   2:    <!--La actualización de seguridad MS11-100 de Microsoft limita el número máximo de miembros JSON
   3:       , archivos y claves de formulario a 1000 en una solicitud HTTP. 
   4:       Debido a este cambio, las aplicaciones ASP.NET rechazan las solicitudes que contengan 
   5:       una cantidad de estos elementos superior a 1000-->
   6:   <add key="aspnet:MaxHttpCollectionKeys" value="5500" />
   7: </appSettings>


Fuente: Microsoft Support


viernes, 5 de octubre de 2012

Mensaje de error cuando ejecuta Regsvr32.exe en Windows de 64 bits

El objetivo es registrar un componente COM de 32 bits en una máquina de 64 bits.

Mensaje de error cuando ejecuta Regsvr32.exe en Windows de 64 bits

Bueno básicamente lo que hay que hacer es (asumiendo que tiene Windows 7):
(y sólo funciona si su máquina de x64 bits no tiene ningún problema con COM+, como ya me sucedió antes por culpa del  "Windows Easy Transfer" y estuve años sin poder hacerlo, ya que había que formatear y en mi caso era más caro el remedio que la enfermedad)

  1. Abrir un línea de comandos en modo administrativo.
  2. Cambiarse al directorio "SysWOW64" mediante cd C:\WINDOWS\SysWOW64
  3. image
  4. Crear un carpeta para sus viejas DLL's de COM (auto registrables). Esto para que sus dll’s tengas su propia carpeta y no esté por allí regadas en medio del mundanal ruido. Ejecute mkdir con el nombre de su carpeta.
  5. Copie sus dll’s en la carpeta con xcopy o con el explorador de Windows.
  6. Ejecute regsvr32 .\SuCarpeta\SuDll.dll
  7. Debería recibir un mensaje de registro exitoso.
Etiquetas de Technorati: ,

miércoles, 12 de septiembre de 2012

Configurar el Timeout para aplicaciones ASP.NET

Actividad 1: Grupo de aplicaciones

image

Actividad 2: Estado de la sesión de ASP.NET

image

 

image

Actividad 3: Configuración de la aplicación Web

Revisar la sección “sessionState”

  • El atributo “timeout” se configura en minutos enteros.
  • El atributo “sqlCommanTimeout” se configura en segundos enteros.
  <system.web>
<sessionState timeout="60" sqlCommandTimeout="360" cookieless="UseCookies" regenerateExpiredSessionId="true" />



Revisar la sección “forms”



  • El atributo “timeout” se configura en minutos enteros.
    <authentication mode="Forms">
<forms loginUrl="~/Account/LogOn" timeout="60" />
</authentication>

Etiquetas de Technorati: ,

miércoles, 15 de agosto de 2012

Instalar subversion (SVN) en Windows en cinco pasos, con Backup incluido. - XperimentoS

Excelente guía de lcflores, este es el comando final de ejemplo que me funcionó. Son fundamentales los espacios entre la opción y el signo igual, si no se pone no se instala y sólo muestra la ayuda del comando "sc"

sc create svn.local binPath= "\"C:\Program Files\Subversion\bin\svnserve.exe\" --service --root \"C:\Databases\svn\"" displayname= "Subversion Repository" depend= Tcpip start= auto

Instalar subversion (SVN) en Windows en cinco pasos, con Backup incluido. - XperimentoS:

'via Blog this'

viernes, 22 de junio de 2012

La tabla externa no tiene el formato esperado. System.Data.OleDb.OleDbException

Problema

   1: Se detectó System.Data.OleDb.OleDbException



   2:   HResult=-2147467259



   3:   Message=La tabla externa no tiene el formato esperado.



   4:   Source=Microsoft JET Database Engine



   5:   ErrorCode=-2147467259



   6:   StackTrace:




Diagnóstico



En mi caso este error lo recibí por no utilizar el provider correcto en driver. Estoy utilizando un archivo de Excel versión 2010 con extensión “xlsx” y el driver está referido a versión antigua “xls”





   1: <add name="ExcelConnectionString"



   2:       connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\archivo.xls;Persist Security Info=False;Extended Properties=&quot;Excel 8.0;HDR=YES&quot;"



   3:       providerName="System.Data.OleDb" />




Solución



Cambiar el provider y en la cadena de conexión a Excel.





   1: <add name="ExcelConnectionString" 



   2:      connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=d:\archivo.xlsx;Persist Security Info=False;Extended Properties=&quot;Excel 12.0 Xml;HDR=YES;IMEX=1&quot;" 



   3:      providerName="System.Data.OleDb"/>




Nota: debe tener instalados los drivers correctos en su máquina, claro.



Etiquetas de Technorati: ,

martes, 5 de junio de 2012

The constructor to deserialize an object of type ‘[XType]' was not found

El error

   1: El código de usuario no controló System.Runtime.Serialization.SerializationException



   2:   HResult=-2146233076



   3:   Message=The constructor to deserialize an object of type 'Metis.Security.IdentityClaims' was not found.



   4:   Source=WebDev.WebHost40



   5:   StackTrace:



   6:        at Microsoft.VisualStudio.WebHost.Server.GetProcessToken()



   7:        at Microsoft.VisualStudio.WebHost.Host.GetProcessToken()



   8:        at Microsoft.VisualStudio.WebHost.Request.GetUserToken()



   9:        at Microsoft.VisualStudio.WebHost.Request.GetServerVariable(String name)




Este problema se refiere a la necesidad de implementar el constructor de serialización personalizada correspondiente.



Sin embargo, en mi caso ya está implementado el constructor y mi problema es un derivado donde el Servidor Web de Desarrollo que estaba utilizando no encontraba mi implementación.



Solución



Una vez más al estar utilizando el Servidor Web de desarrollo de Visual Estudio (WebDev.WebHost40) es necesario copiar las dll dependientes de la seguridad en el directorio correspondiente. (Ver donde en la entrada previa El tipo no está resuelto para el miembro “X”).



Alternativa



Sonrisa Una mejor alternativa, si los tiene disponibles, es utilizar IIS Express ó el IIS local, que no tienen este inconveniente, es decir no necesita copiar archivos a ningún lado.



image