ASP.Net Web Api 2 - Как регистрировать результаты HttpResponse после полного завершения HttpRequest - PullRequest
0 голосов
/ 03 апреля 2019

У меня есть метод ASP.Net Web Api 2, который возвращает поток файлов, используя класс StreamContent.Есть ли способ получить результат потокового ответа?Я пытаюсь записать результаты после того, как файл был полностью передан клиенту.Или зарегистрируйте любые ошибки, которые произошли во время ответа.Я предполагаю, что это можно сделать, так как запрос позволяет вам зарегистрировать объект, который должен быть удален после того, как запрос полностью завершен.,Единственное, о чем я мог подумать, это переопределить метод Dispose на ApiController, но это выглядит глупо.

<RoutePrefix("MyControllerRoute")>
Public Class MyController
    Inherits ApiController

    <HttpGet>
    <Route("MyRoute")>
    Public Function GetFileStream() As IHttpActionResult
        Dim fileStream As IO.Stream = IO.File.OpenRead("SuperLargeFile.txt")
        Dim streamContent As New System.Net.Http.StreamContent(fileStream)
        Dim response As System.Net.Http.HttpResponseMessage = Request.CreateResponse

        Request.RegisterForDispose(fileStream)

        response.Content = streamContent
        response.Content.Headers.ContentType = New System.Net.Http.Headers.MediaTypeHeaderValue("text")

        Return New Results.ResponseMessageResult(response)

    End Function

    Public Sub LogResultsOfFileStreamResponse()
        'How would this be called?    
        'How would I get the results of the response, did it stream over successfully?
    End Sub
End Class
...