Ciągle otrzymuję ten błąd.
Nieprawidłowy identyfikator URI: nie można określić formatu identyfikatora URI.
kod jaki mam to:
Uri uri = new Uri(slct.Text);
if (DeleteFileOnServer(uri))
{
nn.BalloonTipText = slct.Text + " has been deleted.";
nn.ShowBalloonTip(30);
}
Aktualizacja: zawartość w slct.Text to ftp.jt-software.net/style.css
.
Co daje? Dlaczego to nie jest prawidłowy format URI? To zwykły tekst.
ftp://
lubhttp://
w Twoim URI. Masz teraz mój głos ;-)Odpowiedzi:
Może pomóc użycie innego konstruktora dla Uri.
Jeśli masz nazwę serwera
i mieć względną ścieżkę Uri do dołączenia do niej, np
Tworząc Uri z tych dwóch, otrzymuję wyjątek „nie można określić formatu”, chyba że użyję konstruktora z argumentem UriKind, tj.
źródło
Sprawdź możliwe przyczyny tutaj: http://msdn.microsoft.com/en-us/library/z6c2z492(v=VS.100).aspx
EDYTOWAĆ:
Musisz umieścić przedrostek protokołu przed adresem, np. W twoim przypadku "ftp: //"
źródło
Wygląda na to, że może to być prawdziwe URI. Napotkałem ten problem podczas wykonywania Silverlight w różnych przeglądarkach; na moim blogu wspomniałem o obejściu: jako pierwszy parametr podaj „kontekst” uri.
Jeśli identyfikator uri jest rzeczywisty, kontekstowy identyfikator uri jest używany do tworzenia pełnego identyfikatora uri. Jeśli uri jest bezwzględne, to kontekstowe uri jest ignorowane.
EDYTUJ: potrzebujesz „schematu” w uri, np. „Ftp: //” lub „http: //”
źródło
Lepsze wykorzystanie
Uri.IsWellFormedUriString(string uriString, UriKind uriKind)
. http://msdn.microsoft.com/en-us/library/system.uri.iswellformeduristring.aspxPrzykład: -
źródło
Obejrzałem ten problem, używając zamiast tego UriBuilder .
źródło
Problem polegał na tym, że kiedy dostałem nazwę domeny, miałem:
cloudsearch -..-..- xxx.aws.cloudsearch ... [ ŹLE ]
http: //cloudsearch-..-..-xxx.aws.cloudsearch ... [PRAWO]
mam nadzieję, że to zadziała dla Ciebie :)
źródło