Управление потоками при размещении "application/x-www-form-urlencoded" в WCF

Я отправляю данные в WCF, используя метод, предложенный в Наилучшем способе поддерживать "application/x-www-form-urlencoded" данные публикации с WCF?

Я следую примеру в http://blogs.southworks.net/erossetto/2007/09/03/raw-http-post-with-wcf/ и, похоже, все работает нормально. Однако одна проблема связана с управлением потоком в запросе. Я создал вспомогательный метод, как

    public static NameValueCollection ParsePOSTRequest(Stream input)
    {
        StreamReader sr = new StreamReader(input);
        string s = sr.ReadToEnd();
        sr.Dispose();

        return HttpUtility.ParseQueryString(s);
    }

Я вызываю это во всех моих методах, чтобы потом легче искать параметры. Теперь я заметил здесь проблему при попытке доступа к информации о запросе через WebOperationContext.Current, Любое свойство или метод просто генерирует исключение как The System.ServiceModel.Channels.MessageProperties object has been disposed. Очевидно, это происходит из-за того, что потоковое считывающее устройство располагается перед выполнением моей бизнес-логики.

Вопрос будет "правильно ли это распоряжаться?" Должен ли я просто закрыть его вместо этого? Или даже не заморачиваться? Фреймворк все еще нуждается в этом потоке после того, как мой метод завершится, или это все мое, чтобы поиграть?

0 ответов

Другие вопросы по тегам