Ну, проблема не в том, что я не могу создать FTP-соединение, а в том, что URI не анализируются в соответствии с RFC 2396.
Что я на самом деле намеревался сделать, так это создать фабрику, которая предоставляет реализации универсального интерфейса передачи файлов (содержащего методы get и put) на основе заданного URI соединения. URI определяет протокол, информацию о пользователе, хост и путь, и любые свойства, которые необходимо передать, должны быть переданы через часть запроса URI (например, параметр пассивного режима для соединения FTP).
Однако это оказалось трудным с использованием реализации .NET Uri, поскольку кажется, что он анализирует часть запроса URI по-разному в зависимости от схемы.
Так что я надеялся, что кто-то знает обходной путь к этому или альтернативу, казалось бы, испорченной реализации .NET Uri. Было бы неплохо узнать, прежде чем тратить часы на реализацию моего собственного.