Archive for ASP.NET

Como subir ficheros de gran tamaño en ASP .Net

Estos días hemos tenido un par de consultas sobre un problema al subir ficheros mediante el componente File Upload de Asp .Net.

Y es que el framework "capa" las conexiones http pesadas (como, por ejemplo, cuando intentas subir ficheros de más de 1 Mega) por lo que da un error estrepitoso de Timeout.

¿Que podemos hacer para solucionar esto?

¡Fácil! Primero modificamos nuestro web.config permitiendo conexiones Http más pesadas:

  • Añadir esto al tag <system.web>
XML:
  1. <httpruntime executionTimeout="1200"
  2. maxRequestLength="102400"
  3. useFullyQualifiedRedirectUrl="false"
  4. minFreeThreads="8"
  5. minLocalRequestFreeThreads="4"
  6. appRequestQueueLimit="100" />

Esto aumenta el tamaño máximo de paquetes Http así como el tiempo de espera a nivel de nuestra aplicación web.

Por otro lado, por mucho que modifiquemos nuestro web.config, si hay restricciones en el servidor no nos funcionará.

Para ello tenemos que crearos un Inventario Dedicado (pool de asp .net privado para el dominio) en el que aumentaremos también estas parámetros.
Para modificar esto último es necesario que tengas acceso directo al servidor por lo que lo tendremos que hacer nosotros manualmente.

Con esto bastaría... y recuerda, ¡tienes que darle permisos de escritura a la carpeta donde quieres subir!

Un saludo!!

Comentarios

Domitienda.com, soporte de hosting ASP.NET 3.5

Como comentábamos hace tiempo Microsoft ha lanzado la nueva versión del Framework de .Net.

La versión 3.5 añade muchas mejoras tanto en cuestión de componentes como en rendimiento.

LINQ, AJAX, WPF... todo eso y mucho más en la mayor actualización de .net de los últimos tiempos.

Y es ahora, después de muchas pruebas, cuando el Equipo de Domitienda.com ofrece soporte para vuestras aplicaciones ASP .net 3.5!!

De momento es válido solo para nuevas contrataciones (ya que se ha habilitado un servidor nuevo para tal efecto) pero dentro de poco lo instalaremos en el resto de servidores para que todos los clientes actuales podrais disfrutar de esta actualización.

Recordad, para trabajar con el Framework 3.5 es necesario usar el nuevo Visual Studio 2008 que podreis descargar desde aquí.

Y ya sabeis, si teneis alguna duda escribid comentarios de este mismo mensaje, usad el soporte en vivo de la web de domitienda.com o bien el correo de soporte (soporte@businet-isp.com)

Contratar Hosting Básico o Superior

Comentarios (1)

Descargar Visual Studio 2008 Express en Español

Ya está disponible para descarga la versión en Español de Visual Studio Express 2008.

Desde esta dirección: http://www.microsoft.com/express/download/default.aspx podeis descargaros las versiones gratuitas (Express) de cada uno de los lenguajes de programación (c#,j#, c++...) independientemente o bien una ISO de 3GB con todo el Visual Studio 2008 completo.

Recordad, para bajaros la versión en español teneis que escoger el idioma en el desplegable ya que por defecto sale en inglés ;-)

En domitienda.com estamos trabajando duro para poder ofreceros cuanto antes soporte para el framework 3.5. Esperamos poder tenerlo funcionando para finales de este mes... de todos modos cuando este listo os avisaremos desde el blog asi que estad atentos!!

Comentarios (1)

Publicar Aplicaciones Web en Asp .net 2.0

Muchas son las dudas de los nuevos programadores web al respecto de que hacer con su aplicación una vez terminada, ¿copio los ficheros en algun sitio ftp? ¿me llevo el proyecto entero? ¿como lo hago?

Visual Studio nos brinda una estupenda opción para lanzar nuestra aplicación a Internet: "Publicar Sitio Web" .

Primero de todo necesitamos un sitio web donde poder alojar nuestro proyecto. Con el Páquete Básico de Domitienda.com nos valdría para empezar ya que soporta Asp .net y Bases de Datos Sql Server 2005.

Una vez tenemos nuestros sitio web creado y conocemos nuestra información de acceso ftp nos vamos al Visual Studio, cargamos nuestro proyecto y nos vamos a Build > Publicar Sitio Web

publicar1.png

Una vez hecho esto veremos una pantalla en la que nos solicitarán que introduzcamos la ruta donde queremos dejar nuestra web publicada. Por defecto nos aparece una ruta local que debemos cambiar por una ftp.

Para ello pulsamos el boton de "Examinar" que aparece a la derecha de la ruta y seguimos las instrucciones de la siguiente imagen:

publicar2.png

- Servidor: Ip / Nombre de tu servidor ftp. En domitienda.com el formato es ftp.[tu dominio.com]

- Directorio: Carpeta dentro del ftp donde quieres publicar tu sitio web. En domitienda.com la raiz web es la carpeta httpdocs

- Nombre de Usuario y Contraseña: Los que creaste desde el Panel de Control Plesk

Pulsamos "Aceptar" y vamos que la ruta ha cambiado para dar lugar a una ruta ftp hacia el servidor web.

Volvemos a pulsar "Aceptar", se nos compila la aplicación y comenzará el proceso de Publicación.

¿Que hace exactamente la publicación?

Al publicar una aplicación web el propio Visual Studio detecta las dependencias de librerias que has usado en tu aplicación web , las compila y las sube automáticamente a la carpeta bin de tu sitio web.

Además empaqueta todo el Server Side Code (los .cs /.vb) en una dll para evitar que nadie tenga acceso al código fuente de manera directa.

Este es sin duda el método más seguro de subir una aplicación web en un servidor web ya que el mismo se encarga de dejar todos los ficheros en su sitio, compilarlo y prepararlo para su ejecución.

Comentarios (16)

Descargar Microsoft Visual Studio 2008

El Guille (colaborador activo de domitienda.com) nos deja en su página web una relación de ficheros .iso (imagenes de dvd) con las diferentes versiones gratuitas y de 90 dias de Visual Studio 2008.

Visual Studio 2008

Si quereis saber cuales son algunas de las nuevas mejoras de VS2008 y el framework 3.5 podeis echarle un vistazo a este post.

Un Saludo!

Comentarios

Sobre ViewState, MACValidation y MachineKey en asp .net

En ocasiones necesitamos que nuestras aplicaciones webs dispongan de una parte privada que sea accesible mediante la autenticación de un usuario.

Para ello ASP .Net nos ofrece multitud de componentes para implementar "zonas privadas" de forma rápida y sencilla.

Ya sea usando los Application Services o bien manualmente, el control de la sesión es algo necesario para que esto funcione correctamente.

La forma de implementarlo es sencilla (y no es el motivo de este post) el problema viene cuando intentamos realizar este tipo de validación en entornos compartidos (como es el caso de nuestro hosting en domitienda.com).

Pongamos un ejemplo:

Cuando realizas la validación de usuarios en entorno compartido (WebFarm o Cluster) se autogenera una machineKey como identificador para tu aplicación.

Una segunda aplicación web (alojada en el mismo servidor) realiza una validación de usuario con el mismo sistema y el pool por defecto le autogenera otra machineKey...¿que pasa cuando ambas machineKeys coinciden? Veriamos el siguiente error:

Validation of viewsate MAC failed. If this application is hosted by a Web Farm or cluster, ensure that <machineKey> configuration specifies the same validationKey and validation algorithm. Autogenerate cannot be used in a cluster.

¿Os sis suena? Si es así no os preocupeis... tiene fácil solución.

Podeis usar cualquiera de estas soluciones:

  • Deshabilitar ViewState en el Web.Config:

Añade le siguiente código entre los tags <system.web>

<pages enableViewStateMac="false" />
  • Deshabilitar ViweState en la propia página:

Añade el siguiente código en la cabecera de la web aspx (entre los tags <% %>)

enableViewStateMac="False"
  • Indicar manualmente el MachineKey para tu aplicación:

En lugar de que el pool de asp .net nos genere un machineKey automaticamente podemos indicarle en el web.config que código queremos usar.

Para ello existe una herramienta web que nos generará un machineKey único para nosotros con un formato similar al siguiente:

<machineKey validationKey="2F9A2158572BBDC9DF12E8BB1E19BB12A6
69406F5F92A3A1972E0BE9ED886CE5D13A10696E5AEB52E46A905122D4889
E23109ECFDF231411AAB780A589CC0842" decryptionKey="26464B60C7F
B690349D918A6F02D0089A92C1F3AC3749881" validation="SHA1" />

Visita la siguiente web: http://aspnetresources.com/tools/keycreator.aspx y clickea sobre "Generate".

Con esto solucionamos el problema del ViewState en entornos compartidos.

Y recuerda, si te surge algún otro problema estamos esperandote en el PhpLive de domitienda.com

Comentarios (2)

Microsoft lanza el Visual Studio 2008 y el Framework 3.5

EDITADO:

En domitienda.com ya funcionan webs desarrolladas desde Visual Studio 2008 en Framework 3.5

A partir de Hosting Básico por 4.95€/mes


Hace escasos días, Microsoft colgó las versiones Express del Visual Studio 2008 y su novedoso Framework .Net 3.5

Entre las mejoras de este nuevo framework encontramos:

- Retrocompatiblidad:

Se pueden crear ensamblados de los frameworks anteriores sin necesidad de cambiar de framework.
Todas nuestras aplicaciones creadas en el VS2005 serán modificables (y publicables) desde el 2008... eso si, es necesario tener instalado el Service Pack 1 del framework 1 y 2.

- Nuevos Componentes:

ListView, DataPager y LinqDataSource... asi como AJAX incorporado, reproductor de flash, y multiples mejoras para el código fuente como los tipos anónimos, inferencia de tipos, auto inicializador de objetos...

¡Ya esta bien de tener que declarar variables indicando el tipo! Ahora podremos hacer cosas como: 'variable = "Hola";' y el solo sabrá que es un string.

- LINQ:

¿Cuantas veces te ha fallado una aplicación en tiempo de ejecución por una mala construcción de una sentencia sql?
LINQ te permite incrustar sentencias SQL dentro del código fuente de tu aplicación por lo que los errores de sql te los canta el compilador y no la típica excepción.

Y no solo sirve para comunicarse con base de datos... tambien sirve para leer de un XML, fichero de texto plano, colecciones tipo ArrayList...

- Editor HTML y CSS:

¡Por fin nos podemos olvidar del Dreamweaver para poder diseñar bien el interfaz de la web!
VS2008 incluye una herramienta de diseño de html y css que (al menos eso dicen) es bastante potente.

- Mas plantillas de proyectos locales y web, mejoras en el ClickOnce (por fin funcionará bien desde Firefox!) y la publicación de aplicaciones, integración con Office 2007...

En fin, un montón de cosas nuevas que merecen la pena probar.

Si queréis echarle un ojo no tenéis más que descargaros la versión express (en inglés) del vs2008 en la siguiente dirección:

http://www.microsoft.com/express/product/default.aspx

Comentarios (5)

Conectar a una Base de Datos Sql Server 2005 desde Asp .Net

Conectarse a una base de datos Sql Server 2005 puede ser una pequeña aventura para los principiantes en asp .net

Para ellos hemos pensado este pequeño tutorial que esperamos que sirva de ayuda a la hora de conseguir conectarse a una base de datos en el hosting de domitienda.com

El primer paso es crearnos la base de datos Sql Server 2005 vacia desde el Panel de Control Plesk.

Para ello iremos a Inicio > [tu dominio.com] > Bases de Datos > Crear Nueva Base de datos y creamos una BD vacia tal y como se ve en la imagen:

crear_bd.png

Tras hacer esto necesitaremos crear un usuario para el acceso a la misma.

new_user.png

Por ejemplo creamos el usuario "prueba" con pass "123456".

¡Ya tenemos nuestra primera base de datos Sql Server 2005 lista para ser usada!

¿Como puedo crear tablas en esta base de datos? Eso ya lo contamos :-P echa un vistazo a este post. Lo que nos interesa ahora es como conectar desde una aplicación Asp .Net con la recién creada base de datos Sql Server.

Para ello tenemos que definirnos en nuestro web.config una "Cadena de Conexión" (o connectionstring).

Las connectionstrings indican a la aplicación web la ruta que debe seguir para conectarse a una base de datos, sea del tipo que sea. En este ejemplo vamos a explicar como conectarnos con Sql Server 2005.

Para ello abriremos nuestro Web.Config y dentro del tag <configuration> añadimos el siguiente código:

<connectionStrings>

<add name="MiConnectionString"
connectionString="Data Source=sql1.servidoreswindows.net;
Initial Catalog=pruebaDomitienda_BD;
Persist Security Info=True;User ID=Prueba;
Password=123456"providerName="System.Data.SqlClient" />

</connectionStrings>

Como podeis ver, los datos que hemos introducido son los siguientes:

Data Source: sql1.servidoreswindows.net -> El servidor dedicado de Sql Server 2005 de Domitienda.com

Initial Catalog: pruebaDomitienda_BD -> Nombre de la base de datos que hemos creado desde el Plesk

User ID: Prueba

Password: 123456 -> Usuario y Pass de acceso a la base de datos.

Una vez hecho esto ya podríamos conectarnos mediante ADO .NET y el SqlConnector de .Net a la BD usando la ConnectionString que acabamos de crear.

Ah! Y si necesitas crear una ConnectionString mediante ODBC, OleDb u otro estandar de conexión, visita www.connectionstrings.com, donde encontrarás información sobre como crear tus cadenas de conexion para todo tipo de bases de datos habidas y por haber!

¡Un saludo!

Comentarios

Enviar correo desde asp .Net

Hoy en día es necesario que nuestras aplicaciones web envíen correos electrónicos para comunicarnos con los usuarios.
En domitienda lo sabemos y por eso queremos dejaros un pequeño tutorial explicando como podeis hacer esto mismo con vuestro dominio y unas pocas lineas en c#.

Primero tendríamos que crear una cuenta de correo en nuestro dominio.

Para ello tan solo sería necesario acceder al Panel de Control Plesk > Inicio > [tu dominio.com] > Correo > Nueva cuenta de correo.
Nosotros hemos creado la cuenta "envio@domitienda.com" con contraseña "contraseñafalsa1234".

Si nuestra aplicación web esta desarrollada en ASP o PHP podemos utilizar distintos componentes (como el ASPMail, del que hablaré en otra ocasión), en este ejemplo vamos a utilizar un sencillo código en c# para usar con nuestra web en ASP .Net.

private void btnEnviar_Click(object sender, EventArgs e){

//Creamos un nuevo Objeto de Mensaje

MailMessage oMsg = new MailMessage();

//Desde (correo electronico desde la que enviamos)

oMsg.From = new MailAddress(“envio@domitienda.com”);

//Hasta (direccion de correo electronico a la que queremos enviar)

oMsg.To.Add(“cuentaDestino@domitienda.com”);

//Copia Carbon (direccion de correo electronico que queremos que reciba una copia)

oMsg.Bcc.Add(“copia@domitienda.com”);

//Asunto

oMsg.Subject = “Envio de mail desde codigo”;

//Cuerpo del Mensaje

oMsg.Body = “Mensaje enviado desde el codigo fuente de mi aplicación .net”;

//Creamos una instancia de cliente SMTP para el envio del mensaje

//Nombre del servidor SMTP de envio.

//Normalmente es “mail.[tu dominio]

SmtpClient smtp = new SmtpClient(“mail.domitienda.com”);

//Como nuestro servidor requiere autenticación, tenemos que especificar las credenciales

//Para ello tenemos que autenticarnos con nuestra cuenta de correo y contraseña

smtp.Credentials = new System.Net.NetworkCredential(“envio@domitienda.com”,

“contraseñafalsa1234?);

//Y Enviamos el mensaje!!!        

smtp.Send(oMsg);

}

Como podéis ver en el código anterior, es necesario autenticarse en nuestros servidores de correo para poder realizar el envío correctamente.

Para que este código funcione correctamente es necesario que añadais lo siguiente en la cabecera de vuestro fichero .cs:

using System.Net.Mail;

¿Util? ¡Espero que sí!
Como siempre espero vuestros comentarios, dudas y felicitaciones en los comentarios de este post :-P

Un saludo,
El Equipo de Domitienda.com

Comentarios (6)

Configurar Application Services de ASP.NET 2.0 con SQL Server

Entre las novedades que ASP.NET 2.0 incluía respecto a su anterior versión es la gestión de usuarios, algo de lo más común en las mayoría de las webs. Normalmente utiliza una base de datos en local utilizando el SQL Server Express que trae el propio Visual Studio, pero si queremos aprovechar nuestro servidor de SQL Server 2005 tendremos que realizar algún paso para que todo funcione correctamente.

logo asp.net

En el propio servidor debemos utilizar la herramienta aspnet_regsql.exe que viene con el Framework 2.0 de .NET cuya utilidad es preparar nuestra base de datos con la estructura que necesita nuestra aplicación ASP.NET 2.0. Se encuentra en la carpeta C:\WINDOWS\Microsoft.NET\Framework\v2.0.xyz. Al ejecutarlo nos aparecerá un wizard desde el cual podremos elegir la base de datos alojada en nuestro servidor de SQL Server 2005 a la que se le añadirán las tablas necesarias.

logo sql server

Después simplemente hay que cambiar la cadena de conexión de nuestra aplicación para que apunte al servidor y ya está.

<configuration>

<connectionStrings>

<remove name=”LocalSqlServer”/>

<add name="LocalSqlServer" connectionString="Data Source=sql1.servidoreswindows.net;Initial Catalog=base_de_datos;User Id=usuario;Password=password;" providerName="System.Data.SqlClient"/>

</connectionStrings>

</configuration>


Éste será el único paso que deberás realizar, ya que del resto nos ocupamos nosotros.

Comentarios

Add to Technorati Favorites