viernes, 23 de julio de 2010

Trying to use an SPWeb object that has been closed or disposed and is no longer valid.

Buen día, les platico de algo muy común al momento de utilizar los objetos de tipo "SPSite" y "SPWeb". Cuando aparece la siguiente excepción "Trying to use an SPWeb object that has been closed or disposed and is no longer valid.", es muy facil de resolver, al menos en los casos que me a tocado ver. El problema se presenta al utilizar el siguiente código:

using (SPWeb ospWeb = SPContext.Current.Web)
{
Lógica de negocio.
}

Y la solución es no utilizar dentro de using los objetos que se obtienen del contexto, ya que al finalizar se le hace un dispose al objeto y como es el current, no lo permite, ahi es donde viene la excepción.

Saludos,

lunes, 28 de junio de 2010

Configuración de un proxy en un sitio de sharepoint

Estabamos teniendo problemas al momento de que uno de nuestros sitios se conectaba a un web services externo. Dicho problema empezo cuando en la empresa se implemento un proxy. La solución es muy sencilla, en el web.config del sitio, agregar las siguientes lineas

y buala... todo funciona correctament...

Como validar un valor Guid

Buenas tardes.. Hay veces que necesitamos verificar si un valor es un campo de tipo guid. A continuación les coparto una función que me encontre en la red para eso...


private static Regex isGuid = new Regex(@"^(\{){0,1}[0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12}(\}){0,1}$", RegexOptions.Compiled);

internal static bool IsGuid(string candidate, out Guid output)

{

bool isValid = false;

output=Guid.Empty;

if(candidate!=null)

{

if (isGuid.IsMatch(candidate))

{

output=new Guid(candidate);

isValid = true;

}

}

return isValid;

}

Como convertir un Array a Generic List

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

class Program
{
static void Main()
{
// 1.
// String array

string[] s = new string[]
{
"one",
"two",
"three",
"four",
"five"
};
// 2A.
// Convert with new List constructor.

List l = new List(s);

// 2B.
List l2 = s.ToList();
}
}