Un poco de google llega a this Ayende blog post desde marzo de 2010 de la cual cito un extracto:
puedo reproducir este momento, aquí cómo llegó hasta allí:
public class Strange : MarshalByRefObject
{
public void WTF()
{
Console.WriteLine(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);
new Uri("http://localhost:58080/indexes/categoriesByName?query=CategoryName%3ABeverages&start=0&pageSize=25");
}
}
public class Program
{
private static void Main()
{
var instanceAndUnwrap = (Strange) AppDomain.CreateDomain("test", null, new AppDomainSetup
{
ConfigurationFile = ""
}).CreateInstanceAndUnwrap("ConsoleApplication5", "ConsoleApplication5.Strange");
instanceAndUnwrap.WTF();
}
}
que tuvieron alguna hora de descubrir.
De la conversación de comentarios a continuación, que he desnatado pero no leído en detalle, la causa raíz parece ser un error en el archivo de configuración de raíz del equipo, ¿qué se analiza una vez? AppDomain
, de ahí la falta de un error la segunda y posteriores veces.
Habitualmente el uso de este constructo una vez quemado es el tipo de hábito que los programadores acumulan a través de la experiencia dura. Los menos experimentados pueden burlar el "culto a la carga" o la "programación por coincidencia", a lo que los más experimentados solo sonreirán y asentirán.
¿De verdad ha tenido un problema con esto o simplemente se está preguntando porque lo vio en ese código? Eso funciona bien para mí, y mirando a través del constructor 'Uri' en ILSpy, no parece que eso fallaría. Condiciones que provocarán que el constructor genere 'UriFormatException': http://msdn.microsoft.com/en-us/library/z6c2z492(v=vs.100).aspx – Gromer
¿Lo eliminó y ver si algo falló? – Paparazzi
No, no encontré un problema, esa es una razón más para preguntar, porque no creo que lo hayan puesto allí solo por diversión. Sería bueno saber si puede evitar algo y cuándo puede fallar. –