public Task <ActionResult> CpuProfile(int pid, [FromQuery] int durationSeconds = 30) { return(InvokeService(async() => { Stream stream = await _diagnosticServices.StartCpuTrace(pid, durationSeconds, this.HttpContext.RequestAborted); return File(stream, "application/octet-stream", fileDownloadName: FormattableString.Invariant($"{Guid.NewGuid()}.nettrace")); })); }
public Task <ActionResult> CpuProfile(int?pid, [FromQuery][Range(-1, int.MaxValue)] int durationSeconds = 30) { TimeSpan duration = ConvertSecondsToTimeSpan(durationSeconds); return(InvokeService(async() => { int pidValue = _diagnosticServices.ResolveProcess(pid); IStreamWithCleanup result = await _diagnosticServices.StartCpuTrace(pidValue, duration, this.HttpContext.RequestAborted); return new StreamWithCleanupResult(result, "application/octet-stream", Invariant($"{Guid.NewGuid()}.nettrace")); })); }