27 abr 2014

// // 1 comentario

[Windows 8.1] Permitir conexiones entrantes desde otros equipos

Por defecto Windows 8.1 no permite conexiones entrantes desde otros equipos debido a una regla existente en el firewall y si intentamos hacer ping a un equipo con Windows 8.1 nos devolverá el mensaje

Tiempo de espera agotado para esta solicitud

Lo que hay que hacer para permitir las conexiones entrantes es ir al Firewall de Windows -> Configuración avanzada y habilitar la regla de entrada Archivos e impresoras compartidos (petición eco: ICMPv4 de entrada)  tal como se muestra la imagen

Habilitar Regla Firewall Windows

Aunque hay mas opciones disponibles con el mismo nombre, hay que habilitar según el tipo de conexión que se desea.

Fuente: http://www.sysprobs.com/how-to-enable-ping-reply-response-in-windows-8-simple-steps
Leer post completo

25 abr 2014

// // Comentar

[AZURE SDK] No se pueden publicar aplicaciones en VS 2012 después de instalar el SDK de Azure

Luego instalar el Azure SDK para Visual Studio 2012, al momento de querer publicar una aplicación web en el IIS el Visual Studio muestra el siguiente error:

Error    44    The "ImportParametersFile" task failed unexpectedly.
System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.Web.XmlTransform, Version=1.4.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. El sistema no puede encontrar el archivo especificado.

Al parecer esto se da por que la instalación esta haciendo conflicto con una extensión instalada previamente, se trata de ASP .NET and Web Tools.

Para resolver este problema solo hay que reinstalar la extensión nuevamente y podremos publicar sin ningún problema.

WebTools

Si tienen este mismo inconveniente ya saben que hacer.

Leer post completo

3 abr 2014

// // 2 comentarios

ASP .NET MVC - Aumentar el tamaño máximo permitido para serializar en formato JSON

Introducción


Al usar JSON como formato de transferencia de nuestros datos desde el controlador e intentar enviar un volumen considerable de datos, podríamos tener un error como el siguiente:

Error during serialization or deserialization using the JSON JavaScriptSerializer. The length of the string exceeds the value set on the maxJsonLength property.

Esto se da debido que el tamaño máximo para la serialización tiene un tope configurado en la propiedad maxJsonLength que se usa para enviar la información en formato JSON.

Cambiando el valor máximo permitido


Para resolver el problema podríamos intentar cambiando el archivo de configuración de nuestra aplicación así:
<system.web.extensions>
  <scripting>
    <webServices>
      <jsonSerialization maxJsonLength="50000000"/>
    </webServices>
  </scripting>
</system.web.extensions>


Pero curiosamente esta configuración no hace efecto en los resultados que deseamos, el motivo de esto se encuentra como nota en la documentación de la propiedad, donde indica que solo se usa para instancias internas, así que toca modificar por otro lado, para lo cual tenemos 2 opciones:

Asignar un valor a la propiedad.


Si normalmente devolvemos la data de esta manera:

return Json(data, JsonRequestBehavior.DenyGet); 

Deberíamos cambiar a esto:

var jsonResult = Json(data, JsonRequestBehavior.DenyGet);
jsonResult.MaxJsonLength = int.MaxValue;
return jsonResult; 

Si nos fijamos al inicio la propiedad tiene valor nulo, así que al asignarle el valor que deseamos como tope para la serialización se va a poder enviar la data sin ningún problema.

Sobrescribir el controlador base


El método Json esta implementado en la clase Controller, que es la clase base de la cual heredan todos los controladores, si necesitamos hacer el cambio para todo nuestro proyecto podemos crear un controlador base que herede de esta clase y nuestros controladores hacerlos heredar de esta nueva clase o si lo deseamos para un controlador especifico solo podemos sobrescribir el método dentro de nuestro controlador de la siguiente manera:

protected override JsonResult Json(object data, string contentType, System.Text.Encoding contentEncoding, JsonRequestBehavior behavior)
{
    return new JsonResult()
    {
        Data = data,
        ContentType = contentType,
        ContentEncoding = contentEncoding,
        JsonRequestBehavior = behavior,
        MaxJsonLength = Int32.MaxValue
    };
}

Con esto ya no tendríamos el error mencionado inicialmente, podrían cambiar el Int32.MaxValue por algún valor entero que deseen que se restrinja.
Leer post completo