Uri.EscapeUriString не следует использовать для экранирования строки, которая будет передана в URL-адресе, поскольку она не кодирует все символы, как вы могли бы ожидать. «+» - хороший пример, который не избежал. Затем он преобразуется в пробел в URL, поскольку это то, что он означает в простом URI. Очевидно, что это вызывает огромные проблемы в ту минуту, когда вы пытаетесь передать что-то вроде строки в кодировке 64 в URL, и на принимающей стороне появляются пробелы по всей строке.
Вы можете использовать HttpUtility.UrlEncode и добавить необходимые ссылки в свой проект (и если вы общаетесь с веб-приложением, я не вижу причин, почему вы не должны этого делать).
В качестве альтернативы используйте Uri.EscapeDataString вместо Uri.EscapeUriString, как хорошо объяснено здесь: https://stackoverflow.com/a/34189188/7391