В Uri.Create и Uri.TryCreate есть некоторые ошибки, которые позволяют им создавать недопустимые URI, которые впоследствии не могут быть проанализированы. Я сталкивался с этим время от времени, но не смог отследить строки URL, которые его вызывают. Я написал немного об этом здесь .
Если у вас есть список URL-адресов и вы знаете, что один из них вызывает проблему (у меня не было такой роскоши, поскольку я столкнулся с этим при веб-сканировании, где не сохранял текст страницы), вы можете найти ошибка с чем-то вроде этого псевдокода:
while not end of file
{
string url = read from file
Uri uri = new Uri(url);
try
{
string host = uri.Host;
}
catch (UriFormatException)
{
Console.WriteLine("Bad url: {0}", url);
}
}
Если вы сможете определить некоторые URL-адреса, которые вызывают это исключение, я бы обязательно их увидел.