Your question isn't clear (e.g. what platform you're deploying to is a big factor) - but you've got two basic ways of doing this.
1) Just use the standard return a FileResult object through your controller action (if it's a 'one and done' dynamically generated report, e.g.)
2) if you need to retain a local copy (audit reasons, or company policies, etc), I'd generate the PDF, persist the stream to disk, then either a) use IApplicationBuilder.UseStaticFiles() and a FileProvider, or b) place the item statically in front of the application server (e.g. if you're using S3, Azure Blob Storage, or Nginx to host your static files, serve the data from there --- no need to bog down your app servers)
-----
Andrew Nambudripad
Amplete Software
amplete.com