Короче говоря, попытка сериализации объекта http-запроса может закончиться неудачно; даже если вы преодолеете текущую проблему, я ожидаю, что она выйдет из строя еще в нескольких местах.
Вы должны создать свою собственную объектную модель, которая включает в себя те части запроса, которые вас интересуют, в простой форме. В случае HttpValueCollection вам может понадобиться добавить базовую коллекцию некоторого типа, которая представляет собой пару имя / значение.
Затем: заполните вашу новую модель из фактического запроса и сериализуйте вашу модель.