Chrome Network Error Download Files on C# or Vb.Net

error_network_chrome
Estándar

With the last update of Google Chrome (Versión 53.0.2785.116 m at this point) many Microsoft developers get the surprise of download buttons of their web applications start to fail with Network Error.

This maybe cause by the flush() and close() behaviour on our code and the use of this methods on download functions.

One of the solutions that i find to fix it, its to change flush() and close() to end() adding a empty System.Threading.ThreadAbortException catch to avoid problems on execution.

C#

...            
//Response.Flush();
//Response.Close();
Response.End();
}
catch (System.Threading.ThreadAbortException)
{}
.....

 

Vb.Net

Try
.....
'Response.Flush()
'Response.Close()
Response.End()
Catch exx As System.Threading.ThreadAbortException
End Try

 

I hope this work for you, share and comment this post.

Solucionado: la página que solicita no se puede atender debido a la configuración de lista ISAPI y CGI

Estándar

Este es un error que aparece de vez en cuando cuando hacemos un deploy de aplicación en algún servidor nuevo, en el que la aplicación use la versión 4 de .NET.

La solucion estandar, que es la que muestro aquí, es bastante rápida y sencilla.

Debemos revisar si en la configuracion del IIS > Restricciones de ISAPI y CGI , tenemos permitidas las rutas de acceso de la version 4 de ASP.NET. Os dejo unos pantallazos.

Seleccionamos el nombre del servidor en el IIS, luego vamos a la seccion “IIS” de la configuración y abrimos “Restricciones de ISAPI y CGI”.

iis1En la siguiente pantalla debemos seleccionar las extensiones de ASP.NET v4 y pulsar “Permitir”

iis2

Esta es la causa principal del error “la página que solicita no se puede atender debido a la configuración de lista ISAPI y CGI”.

Si conoces otra solución a esta incidencia escribelo en los comentarios.

 

Mostrar errores de ASP con Jquery al usar AJAX (Show ASP errors when using AJAX with jQuery))

Estándar

A continuacion mostramos como sacar los errores ASP cuando trabajamos con AJAX en JQuery.

Basicamente lo que hacemos es en la funcion de error recuperamos el texto a traves de la variable xhr que es enviada de forma automatica a nuestra funcion al ejecutar la llamada.

Esta respuesta la podemos mostrar en un alert o en html.

Continuar leyendo

ADODB.Command error ‘800a0cc1’ Item cannot be found in the collection corresponding to the requested name or ordinal.

Estándar

Este error puede significar varias cosas dependiendo de la base de datos.

Por un lado lo mas normal es que estemos llamando a un objeto Cmd.CommandType = adCmdStoredProc  (procedimiento almacenado)  y uno de los parametros que estamos llamando no exista en ese procediminento.

Debemos revisar las lineas:

Cmd.Parameters(“@parametro”)  y revisar que la variable que esta entre las comillas es la misma que tenemos en el procedimiento y que el tipo de dato que le estamos enviando coincide con la declaracion en el procedimiento almacenado.

Esto es valido en general para cualquier version de SQL Server, pero … ¿y si el parametro esta bien?

Muchas veces en nuestras aplicaciones nos encontramos con errores de ADODB.Command error que en los casos normales son mostrados por el navegador para poder revisarlos y solucionarlos. Sin embargo este error en particular nos puede llevar a confusion ya que en primera instancia nos dice que estamos llamando a un campo o parametro que no existe “Item cannot be found in the collection corresponding to the requested name  or ordinal.”

Esto en la mayoria de ocasiones es cierto pero… ¿y si tienes todo bien y el procedimiento almacenado funciona en el sql server?. Bien pues resulta que este error en algunas ocasiones camufla otro distinto en SQL Server 2005 Express y no es hasta que quitamos un Cmd.Parameters cuando nos muestra su verdadera cara:

Microsoft OLE DB Provider for ODBC Drivers error ‘80040e09’

[Microsoft][SQL Native Client][SQL Server]The EXECUTE permission was denied on the object ‘PROCEDIMIENTO’, database ‘VENTAS’, schema ‘dbo’.

Resulta que como es un procedimiento almacenado nuevo y tenemos bien configurada la seguridad, el usuario que abre la conexion no tiene permisos de ejecucion,  no puede leer la declaracion del procedimiento y muestra el error ‘800a0cc1’, aunque ese no sea el error real.

Sin embargo por la situacion anterior podemos perder un buen rato verificando nuestros procedimientos pensando que estan mal.

Moraleja: ADODB.Command error ‘800a0cc1’  Item cannot be found in the collection corresponding to the requested name  or ordinal …. revisa los permisos de ejecucion si tienes SQL Server Express 2005, sino revisa los parametros.

Si te ha servido deja un comentario.