2015-11-06 2 views
1

Я пишу промежуточное ПО Owin для очень простой самообслуживающей конечной точки, используя WebApp.Start();Должен ли я использовать потоки в контексте Owin, когда я их использую?

Для записи в поток ответа у меня есть код формы:

var writer = new StreamWriter(context.Response.Body, Encoding.UTF8); 
serialiser.Serialize(writer, output); 
writer.Flush(); 

Должен ли я распоряжаться либо писатель или context.Response.Body? Обычно у меня есть операторы using повсюду, но я не создавал поток ответов, и у меня есть смутное воспоминание о том, что существует соглашение о том, что утилизация является ответственностью компонента, который создавал экземпляр IDisposable.

ответ

2

Нет, сервер владеет этими потоками и очистит их в конце запроса.

http://owin.org/html/spec/owin-1.0.html

3,4 «Приложение не следует закрывать или утилизировать данный поток, если он полностью не поглотил тело запроса. Владелец потока (например, сервер или промежуточный слой) должен выполнить необходимую очистку после того, как приложение делегат Задание завершено ».

3.5 «Приложение НЕ ДОЛЖНО закрывать или удалять данный поток, поскольку промежуточное программное обеспечение может добавлять дополнительные данные. Владелец потока (например, сервер или промежуточное ПО) ДОЛЖЕН выполнить любую необходимую очистку после завершения задачи делегирования приложения».

 Смежные вопросы

  • Нет связанных вопросов^_^