I'm working on a small project that uses Nancy hosted from within a WPF application. I want to be able to remotely download a PDF file that is ~8MB. I was able to get the download to work but while the download is in progress the application won't respond to any other requests. Is there a way I can allow the file download without tying up the all other requests?
Public Class ManualsModule : Inherits NancyModule
Public Sub New()
MyBase.New("/Manuals")
Me.Get("/") = Function(p)
Dim model As New List(Of String) From {"electrical", "opmaint", "parts"}
Return View("Manuals", model)
End Function
Me.Get("/{name}") = Function(p)
Dim manualName = p.name
Dim fileResponse As New GenericFileResponse(String.Format("Content\Manuals\{0}.pdf", manualName))
Return fileResponse
End Function
End Sub
End Class
Or in C#
public class ManualsModule : NancyModule
{
public ManualsModule() : base("/Manuals")
{
this.Get("/") = p =>
{
List<string> model = new List<string> {
"electrical",
"opmaint",
"parts"
};
return View("Manuals", model);
};
this.Get("/{name}") = p =>
{
dynamic manualName = p.name;
GenericFileResponse fileResponse = new GenericFileResponse(string.Format("Content\\Manuals\\{0}.pdf", manualName));
return fileResponse;
};
}
}
var file = new FileStream(zipPath, FileMode.Open);
string fileName = //set a filename
var response = new StreamResponse(() => file, MimeTypes.GetMimeType(fileName));
return response.AsAttachment(fileName);