Ich bekomme immer wieder diesen Fehler.
Ungültiger URI: Das Format des URI konnte nicht ermittelt werden.
Der Code, den ich habe, ist:
Uri uri = new Uri(slct.Text);
if (DeleteFileOnServer(uri))
{
nn.BalloonTipText = slct.Text + " has been deleted.";
nn.ShowBalloonTip(30);
}
Update: Der Inhalt in slct.Text ist ftp.jt-software.net/style.css
.
Was gibt? Wie ist das kein gültiges URI-Format? Es ist einfacher Text.
ftp://
oderhttp://
in Ihrer URI. Du bekommst jetzt meine Stimme ;-)Antworten:
Es kann hilfreich sein, einen anderen Konstruktor für Uri zu verwenden.
Wenn Sie den Servernamen haben
und einen relativen Uri-Pfad zum Anhängen haben, z
Wenn ich aus diesen beiden eine Uri erstelle, erhalte ich die Ausnahme "Format konnte nicht bestimmt werden", es sei denn, ich verwende den Konstruktor mit dem UriKind-Argument, d. H.
quelle
Überprüfen Sie mögliche Gründe hier: http://msdn.microsoft.com/en-us/library/z6c2z492(v=VS.100).aspx
BEARBEITEN:
Sie müssen das Protokollpräfix vor die Adresse setzen, dh in Ihrem Fall "ftp: //"
quelle
Klingt so, als wäre es ein realistischer Uri. Ich bin auf dieses Problem gestoßen, als ich browserübergreifendes Silverlight ausgeführt habe. In meinem Blog habe ich eine Problemumgehung erwähnt: Übergeben Sie als ersten Parameter eine "Kontext" -URI.
Wenn der Uri realistisch ist, wird der Kontext-Uri verwendet, um einen vollständigen Uri zu erstellen. Wenn der Uri absolut ist, wird der Kontext-Uri ignoriert.
BEARBEITEN: Sie benötigen ein "Schema" in der URL, z. B. "ftp: //" oder "http: //".
quelle
Besser nutzen
Uri.IsWellFormedUriString(string uriString, UriKind uriKind)
. http://msdn.microsoft.com/en-us/library/system.uri.iswellformeduristring.aspxBeispiel: -
quelle
Ich habe dies umgangen, indem ich stattdessen UriBuilder verwendet habe.
quelle
Das Problem für mich war, dass ich, als ich einen Domainnamen bekam, Folgendes hatte:
cloudearch -..-..- xxx.aws.cloudsearch ... [FALSCH]
http: //cloudsearch-..-..-xxx.aws.cloudsearch ... [RECHTS]
hoffe das macht den Job für dich :)
quelle