JASoft.org

Cómo actualizar correctamente un sitio web y evitar DLLs bloqueadas al actualizar una aplicación ASP.NET en IIS (o Azure)

Cómo actualizar correctamente un sitio web y evitar DLLs bloqueadas al actualizar una aplicación ASP.NET en IIS (o Azure)
Si tienes una aplicación ASP.NET o ASP.NET Core en producción y necesitas actualizarla, la manera correcta de hacerlo no es simplemente copiar por encima todos los archivos, aunque a veces te funcione. Lo suyo es descargar la aplicación de memoria para asegurarnos de que se han liberado todos los recursos que pudieran estar bloqueados, mostrar una página de mantenimiento, actualizar y volver a ponerla en línea. Todo esto lo podemos conseguir con ASP.NET e IIS de manera automática con el uso de un único archivo especial que además evita problemas de posicionamiento en buscadores. Esto es lo que te cuento en este artículo de hoy. [Más]

Solucionar el error "Thread was being aborted" en ASP.NET

Solucionar el error "Thread was being aborted" en ASP.NET
En ASP.NET ¿has visto alguna vez el error System.Threading.ThreadAbortException? ¿Aunque tus usuarios no se quejan de ningún error, en tus logs no dejan de aparecer errores com este? ¿Si ves tu código no hay nada raro, como mucho una simple redirección a otra página, pero se sigue produciendo? Si contestas que sí a alguna o a todas estas preguntas, a continuación te cuento por qué pasa y cómo solucionarlo. [Más]

Mi aplicación ASP.NET se reinicia, doctor, ¿es grave?: Aplicaciones, Grupos de aplicaciones y Dominios de Aplicación en IIS y ASP.NET

Mi aplicación ASP.NET se reinicia, doctor, ¿es grave?: Aplicaciones, Grupos de aplicaciones y Dominios de Aplicación en IIS y ASP.NET
Los tres términos del título de este post suelen causar bastante confusión entre los desarrolladores ASP.NET que además deben administrar un servidor web con Internet Information Server bajo Windows. Mi objetivo hoy va a ser tratar de aclararlos y ver qué implicaciones tienen en el día a día de una aplicación Web creada con ASP.NET: cómo funcionan, cuándo se reciclan o se inician, cómo se afectan unos a otros... [Más]

ASP.NET: separando el web.config de nuestra aplicación en varios archivos

ASP.NET: separando el web.config de nuestra aplicación en varios archivos
El archivo web.config contiene toda la configuración de nuestras aplicaciones web basadas en .NET. En él se puede encontrar de todo: desde las cadenas de conexión a las bases de datos, hasta los detalles de cómo debe funcionar Internet Information Server, pasando por todo tipo de parámetros propios de la aplicación que hemos desarrollado. A veces este archivo puede llegar a ser enorme. Además existen ciertas configuraciones que quizá nos gustaría poder gestionar de manera separada, por ejemplo porque son especialmente privadas (claves y cosas así) o quizá porque quiénes deben gestionarlas son otras personas... [Más]

No me aparece el DataContext en un LinqDataSource

No me aparece el DataContext en un LinqDataSource
Linq to SQL es una tecnología precursora del actual Entity Framework que fue pionera en sacar partido a Linq para crear un ORM fácil de utilizar con esta tecnología. Su principal limitación es que solo funciona con SQL Server y que los "mapeos" deben ser 1 a 1 con las tablas (una tabla = 1 clase). Sin embargo es tremendamente fácil de usar y tiene un diseñador visual muy efectivo, por lo que a mucha gente (incluyéndome yo mismo) nos gusta mucho y es válido para la mayor parte de las situaciones si trabajas con el gestor de datos de Microsoft.En ASP.NET Web Forms (otra tecnología ahora en retroceso pero tremendamente efectiva para ciertos tipos de aplicaciones Web, como por ejemplo las orientadas a gestión) se incluye un control para acceso visual a datos llamado LinqDataSource que está especialmente diseñado para trabajar con esta tecnología. Este control combinado con los diferentes controles enlazados a datos (y especialmente los ListView y DataPager) permite crear interfaces web ori... [Más]

La propiedad EnableViewStateMac ya no funciona en ASP.NET Web Forms 4.5.2

La propiedad EnableViewStateMac ya no funciona en ASP.NET Web Forms 4.5.2
Hace unas semanas Microsoft anunció la revisión 4.5.2 de .NET, que actualiza un poco la última versión de la plataforma .NET (la 4.5) con algunos ajustes y correcciones. Si nos atenemos a lo que anunciaron en el blog oficial, e incluso en la lista de cambios del lanzamiento, no hay nada que llame la atención sobre un pequeño detalle que sin embargo es muy importante: han deshabilitado la posibilidad de desactivar el MAC del ViewState en ASP.NET Web Forms. Y esto ¿qué significa? Para verlo, primero demos un repaso rápido a qué es el MAC y para qué sirve. Luego veremos qué implicaciones tiene el hecho de no poder desactivarlo. Funcionamiento del ViewState y autenticación El ViewState, como todos deberíamos saber, es una parte fundamental del funcionamiento de Web Forms. Almacena el estado de los diferentes controles de una página entre postbacks. En Web Forms cada evento que se produce que se gestiona en el servidor implica un envío de la página de nuevo al servidor. A estos reenv... [Más]

Acceder a la herramienta de configuración de ASP.NET en Visual Studio 2013

Acceder a la herramienta de configuración de ASP.NET en Visual Studio 2013
Hasta la versión 2012 de Visual Studio disponíamos de un acceso directo muy cómodo desde el propio entorno que nos permitía lanzar la herramienta de configuración de ASP.NET: De esta manera abríamos la utilidad que nos permitía configurar la seguridad de la aplicación: usuarios, roles, proveedores para éstos, etc... En Visual Studio 2013 y .NET 4.5 se ha dado preferencia a las bibliotecas de ASP.NET Identityen detrimento del clásico sistema de Membership. Por ello, aparte de basar las nuevas plantillas de proyecto en estas nuevas bibliotecas de autenticación y autorización, se ha retirado el acceso directo a la herramienta anterior (y no se proporciona tampoco una herramienta análoga para lo nuevo, debiendo recurrir a la implementación por defecto incluida en las plantillas). Sin embargo, si necesitas (o prefieres) utilizar el antiguo sistema de autenticación y te interesa acceder a la herramienta, todavía puedes hacerlo, aunque no te resultará tan cómodo. El acceso se basa en el... [Más]

Nuevos proyectos unificados de aplicaciones ASP.NET en Visual Studio 2013

Nuevos proyectos unificados de aplicaciones ASP.NET en Visual Studio 2013
Un poco de historia para comenzar y ayudarnos a entender el porqué de lo que voy a explicar. Cuando nació ASP.NET hace ya casi 15 años lo único que existía era ASP.NET Web Forms. Este novedoso paradigma de desarrollo trataba de acercar el desarrollo web a los programadores de escritorio, y permitía arrastrar y soltar controles, controlar eventos en el servidor como si fueran eventos de cliente, etc… Algo muy innovador y que todavía sigue siendo muy útil (y muy utilizado), pero que cada vez se usa más para ciertos ámbitos concretos, como las aplicaciones empresariales. Una década más tarde Microsoft decidió que aunque esto estaba muy bien para crear rápidamente aplicaciones de tipo empresarial no daba la flexibilidad apropiada para crear aplicaciones web generales, donde se necesitaba un control absoluto sobre el HTML generado, y se necesita poder sacar partido con total libertad a... [Más]

Cómo depurar el evento Application_End en ASP.NET

Cómo depurar el evento Application_End en ASP.NET
El evento Application_End se desata en una aplicación Web cuando ésta termina por cualquier motivo, aunque sea para reiniciarse. Escribimos un gestor de este evento dentro de Global.asax en el que incluimos cualquier tipo de código que se encargará de dejar en el estado correcto cualquier recurso global que hayamos inicializado en el evento complementario que se lanza cuando arranca la aplicación: Application_Start. Esto es válido tanto para aplicaciones Web Forms como MVC. El código que pongamos en estos eventos se lanzará únicamente cuando se arranque y se detenga la aplicación. Si queremos depurarlo desde Visual Studio, usando el servidor de desarrollo (que es lo habitual), la cosa tiene algo de truco. El problema es que no es tan fácil conseguir que se cierre la aplicación y que puedas depurarlo al mismo tiempo. Al contrario de lo que muchos programadores se piensan, cerrar el navegador no detiene la aplicación, que sigue activa por detrás, sólo cierras la sesión actual del u... [Más]

Este soy yo y este es mi blog técnico, dedicado al software y a la programación.

¡Sígueme en Twitter!

Mis otros blogs

- JM Alarcón @ campusMVP.es
Contenido técnico en español orientado a desarrolladores
- JMAlarcon.es
Blog personal no técnico: sociedad, innovación, empresa...

Krasis

- campusMVP.es:
Los mejores cursos online de programación en español

- SELF LMS:
La plataforma de elearning más potente del mercado.

Histórico