2010-11-16 46 views
14

Estoy tratar de construir Uri pero soy incapaz de manejar mal de uriURI no válido: El nombre de host no se pudo analizar

¿Hay alguna manera podemos manejar

if (reviews[e.Item.ItemIndex].URL.ToString().Contains("http:")) 
{ 
     oURI = new Uri(reviews[e.Item.ItemIndex].URL.ToString()); 
} 
else 
{ 
    oURI = new Uri("http://"+ reviews[e.Item.ItemIndex].URL.ToString()); 
} 

parte Else mal de uri recibe error por mal URI de Gracias

+1

Si usa la etiqueta Code Sample, será mucho más fácil leer esto –

+0

¿Cuál es su pregunta? – SLaks

+0

@Femaref: Tu edición es incorrecta. 'Estoy tratando de construir ...' era correcto. – gligoran

Respuesta

18

llamada Uri.TryCreate:

string original = reviews[e.Item.ItemIndex].URL.ToString(); 
if (!original.StartsWith("http:")) 
    original = "http://" + original; 
Uri uri; 
if (!Uri.TryCreate(original, UriKind.Absolute, out uri)) { 
    //Bad bad bad! 
} 
+0

Genial, no sabía que existía. Eliminé mi publicación porque tu publicación parece ser la mejor respuesta. –

+0

Hice el truco Muchas gracias ... – kumar

0

Recibí un error similar con nginx fastcgi-mono-server4. Resulta que el servidor web proporcionó el valor regex para SERVER_NAME. Entonces tengo que arreglarlo en el servidor reemplazando fastcgi_param SERVER_NAME $server_name; con fastcgi_param SERVER_NAME $host;

0

Tenía un espacio después de "http: //" como http: // exampleServer/exampleservice.svc que había causado este error.

Cuestiones relacionadas