无效的 URI: 无法确定 URI 的格式

我一直有这个错误。

无效的 URI: 无法确定 URI 的格式。

我的密码是:

Uri uri = new Uri(slct.Text);
if (DeleteFileOnServer(uri))
{
nn.BalloonTipText = slct.Text + " has been deleted.";
nn.ShowBalloonTip(30);
}

更新: slct. Text 中的内容是 ftp.jt-software.net/style.css

怎么回事? 这怎么不是有效的 URI 格式? 这是纯文本。

432983 次浏览

这里检查可能的原因: http://msdn.microsoft.com/en-us/library/z6c2z492(v=VS.100).aspx

编辑:

您需要将协议前缀放在地址的前面,例如,在您的示例中,“ ftp://”

听起来像是一个真实的 Uri。我在做跨浏览器 Silverlight 时遇到了这个问题; 在我的 博客中,我提到了一个变通方法: 将“ context”uri 作为第一个参数传递。

如果 uri 是真实的,那么上下文 uri 用来创建一个完整的 uri。如果 uri 是绝对的,则忽略上下文 uri。

编辑: 在 uri 中需要一个“ scheme”,例如“ ftp://”或“ http://”

对 Uri 使用不同的构造函数可能会有所帮助。

如果您有服务器名称

string server = "http://www.myserver.com";

并有一个相对的 Uri 路径附加到它,例如。

string relativePath = "sites/files/images/picture.png"

当用这两个函数创建 Uri 时,除非我使用带有 UriKind 参数的构造函数,否则我会得到“ format could not be really”异常。

// this works, because the protocol is included in the string
Uri serverUri = new Uri(server);


// needs UriKind arg, or UriFormatException is thrown
Uri relativeUri = new Uri(relativePath, UriKind.Relative);


// Uri(Uri, Uri) is the preferred constructor in this case
Uri fullUri = new Uri(serverUri, relativeUri);

最好使用 Uri.IsWellFormedUriString(string uriString, UriKind uriKind)http://msdn.microsoft.com/en-us/library/system.uri.iswellformeduristring.aspx

例子:-

 if(Uri.IsWellFormedUriString(slct.Text,UriKind.Absolute))
{
Uri uri = new Uri(slct.Text);
if (DeleteFileOnServer(uri))
{
nn.BalloonTipText = slct.Text + " has been deleted.";
nn.ShowBalloonTip(30);
}
}

我通过使用 UriBuilder来解决这个问题。

UriBuilder builder = new UriBuilder(slct.Text);


if (DeleteFileOnServer(builder.Uri))
{
...
}

对我来说,问题是,当我得到一些域名,我有:

Cloudsearch-. .-. .-xxx.aws.Cloudsearch... [错误]

Http://cloudsearch-..-..-xxx.aws.cloudsearch ... < strong > [ RIGHT ]

希望这个能帮到你:)

我在设置 Docker 时出现了这样的调试错误。

我已经在“ launchSettings.json”中设置了 docker 设置,如下所示。

问题解决了。

"Docker":
{
"commandName": "Docker",
"launchBrowser": true,
"launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}/",
"publishAllPorts": false,
"useSSL": true
}

如果您为应用程序启用了 SwaggerDoc,请检查 xml 注释文件是否存在。