Ich habe eine ASP.NET Core-Web-API, die Berichte mithilfe von Telerik Reporting generiert. Die Berichtserstellung funktioniert in meiner lokalen Entwicklungsumgebung einwandfrei, schlägt jedoch bei der Bereitstellung auf einer Azure-VM mit IIS sofort mit OperationCanceledException fehl. Der Vorgang wartet nicht einmal auf das konfigurierte 5-Minuten-Timeout.
Das Problem tritt sporadisch auf. Es funktioniert manchmal, funktioniert aber plötzlich nicht mehr ohne Codeänderungen.
Fehler-Stack-Trace:
public SalesSummaryDataOutput SalesSummaryReport(SalesReportSummaryRequest requestReport)
{
string reportPath = "\\Reports\\" + ReportTypes.SalesSummary.ToString() + ".trdx";
var reportProcessor = new ReportProcessor();
var deviceInfo = new Hashtable();
var reportSource = new UriReportSource();
reportSource.Uri = _hostEnvironment.ContentRootPath + reportPath;
reportSource.Parameters.Add("FromDate", requestReport.FromDate);
reportSource.Parameters.Add("ToDate", requestReport.ToDate);
reportSource.Parameters.Add("CompanyId", requestReport.CompanyId);
reportSource.Parameters.Add("LocationId", requestReport.LocationId);
reportSource.Parameters.Add("UserId", requestReport.UserId);
reportSource.Parameters.Add("ExecuteReport", true);
deviceInfo["OutputFormat"] = "PNG";
deviceInfo["DpiX"] = 192;
deviceInfo["DpiY"] = 192;
deviceInfo["Timeout"] = 300000;
deviceInfo["ThreadCulture"] = CultureInfo.CurrentCulture.Name;
try
{
CloseStreams();
string documentName = "ReportDocument";
var cts = new CancellationTokenSource(TimeSpan.FromMinutes(5));
bool result = reportProcessor.RenderReport("IMAGE", reportSource, deviceInfo, CreateStream, cts.Token, out documentName);
if (result)
{
var salesSummaryReport = new SalesSummaryDataOutput();
foreach (var stream in _streams)
{
byte[] imageData = ReadToEnd(stream);
string base64String = Convert.ToBase64String(imageData, 0, imageData.Length);
salesSummaryReport.ReportImages.Add(base64String);
}
CloseStreams();
return salesSummaryReport;
}
}
catch (Exception ex)
{
var salesSummaryReport = new SalesSummaryDataOutput();
salesSummaryReport.ReportImages.Add($"Error: {ex.Message}");
CloseStreams();
return salesSummaryReport;
}
return new SalesSummaryDataOutput();
}
Warum erfolgt der Abbruch sofort in IIS, aber nicht lokal?
Was könnte dieses intermittierende Verhalten verursachen?
Gibt es bestimmte IIS- oder Telerik-Konfigurationen, die mir fehlen?
Ich habe eine ASP.NET Core-Web-API, die Berichte mithilfe von Telerik Reporting generiert. Die Berichtserstellung funktioniert in meiner lokalen Entwicklungsumgebung einwandfrei, schlägt jedoch bei der Bereitstellung auf einer Azure-VM mit IIS sofort mit OperationCanceledException fehl. Der Vorgang wartet nicht einmal auf das konfigurierte 5-Minuten-Timeout. Das [url=viewtopic.php?t=26065]Problem[/url] tritt sporadisch auf. Es funktioniert manchmal, funktioniert aber plötzlich nicht mehr ohne Codeänderungen. Fehler-Stack-Trace: [code]The operation was canceled. at System.Threading.CancellationToken.ThrowOperationCanceledException() at System.Threading.ManualResetEventSlim.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken) at System.Threading.Tasks.Task.SpinThenBlockingWait(Int32 millisecondsTimeout, CancellationToken cancellationToken) at System.Threading.Tasks.Task.InternalWaitCore(Int32 millisecondsTimeout, CancellationToken cancellationToken) at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken) at System.Threading.Tasks.Task.Wait(CancellationToken cancellationToken) at Telerik.Reporting.Paging.PageCompositionBase.SeparateThreadOutputBehavior.Finish() at Telerik.Reporting.Paging.PageCompositionBase.CreatePages() at Telerik.Reporting.Paging.PagerBase.Telerik.Reporting.Paging.IPager.CreatePages(IPageHandler handler, LayoutElement root) at Telerik.Reporting.BaseRendering.RenderingExtensionBase.Render(LayoutElement root, Hashtable renderingContext, Hashtable deviceInfo, CreateStream createStreamCallback, EvaluateHeaderFooterExpressions evalHeaderFooterCallback, PageSettings pageSettings) at Telerik.Reporting.BaseRendering.RenderingExtensionBase.Render(Report report, Hashtable renderingContext, Hashtable deviceInfo, CreateStream createStreamCallback, EvaluateHeaderFooterExpressions evalHeaderFooterCallback) at Telerik.Reporting.Processing.ReportProcessor.RenderCore(ExtensionInfo extensionInfo, IList`1 processingReports, Hashtable deviceInfo, IRenderingContext renderingContext, CreateStream createStreamCallback) at Telerik.Reporting.Processing.ReportProcessor.ProcessAndRender(String format, ReportSource reportSource, Hashtable deviceInfo, IRenderingContext renderingContext, CreateStream createStreamCallback) at Telerik.Reporting.Processing.ReportProcessor.ProcessAndRenderStateless(String format, ReportSource reportSource, Hashtable deviceInfo, IRenderingContext renderingContext, CreateStream createStreamCallback) at Telerik.Reporting.Processing.ReportProcessor.RenderReport(String format, ReportSource reportSource, Hashtable deviceInfo, CreateStream createStreamCallback, CancellationToken cancellationToken, String& documentName) [/code] Hier ist der Code für die Berichtserstellung: [code]public SalesSummaryDataOutput SalesSummaryReport(SalesReportSummaryRequest requestReport) { string reportPath = "\\Reports\\" + ReportTypes.SalesSummary.ToString() + ".trdx"; var reportProcessor = new ReportProcessor(); var deviceInfo = new Hashtable(); var reportSource = new UriReportSource();
CloseStreams(); return salesSummaryReport; } } catch (Exception ex) { var salesSummaryReport = new SalesSummaryDataOutput(); salesSummaryReport.ReportImages.Add($"Error: {ex.Message}"); CloseStreams(); return salesSummaryReport; }
return new SalesSummaryDataOutput(); } [/code] Warum erfolgt der Abbruch sofort in IIS, aber nicht lokal? Was könnte dieses intermittierende Verhalten verursachen? Gibt es bestimmte IIS- oder Telerik-Konfigurationen, die mir fehlen?
Ich möchte das aktuelle Datum zusammen mit Radgrid -Daten in das Excel -Blatt exportieren. Wie kann ich das tun?public void ExportExcel(RadGrid radGrid)
{
if (radGrid == null)
throw new...
Ich stelle MySQL in einem Azure Kubernetes -Cluster (AKS) mit dem Bitnami MySQL -Helm -Diagramm ein. Für den anhaltenden Speicher verwende ich anhaltende Volumenansprüche (PVCs), um das...
Ich habe derzeit ein Problem mit dem Zugriff auf ein Speicherkonto während einer Datenerfassung mithilfe von Computer Vision. Das Problem tritt auf, wenn das Speicherkonto auf „Privat“ festgelegt...