Report Service runs normally on Windows, but fails in Docker.
I deployed the Report Service in Docker, and the following API call reported an error:
http://localhost:60248/api/reports/clients/813685ac1f3/parameters
http method: post
request body:
{
"report": "MedDispense.Reporting.ReportService.InventoryCost, MedDispense.Reporting.ReportService",
"parameterValues": {
"SiteID": "999",
"StationID": "1",
"SortBy": ""
}
}
responseļ¼
{
"message": "An error has occurred.",
"exceptionMessage": "Invalid report type",
"exceptionType": "System.ArgumentException",
"stackTrace": " at Telerik.Reporting.Processing.TypeReportDocumentResolver.Resolve(IProcessingContext context, TypeReportSource rs)\n at Telerik.Reporting.Processing.ReportDocumentResolver`1.Telerik.Reporting.Processing.IReportDocumentResolver.Resolve(IProcessingContext context, ReportSource rs)\n at Telerik.Reporting.Processing.ReportDocumentResolver.<>c__DisplayClass0_0.<
Resolve
>b__0(IReportDocumentResolver r)\n at Telerik.Reporting.Processing.ReportDocumentResolver.Bind[T](IProcessingContext context, ReportSource source, Func`2 func)\n at Telerik.Reporting.Processing.ReportDocumentResolver.Resolve(IProcessingContext context, ReportSource source)\n at Telerik.Reporting.Processing.ResolvedReportDocument.ResolveReportsRecursively(ReportSource rs, IProcessingContext context, IDictionary`2 parentRsParameters, Boolean parentShouldDispose, List`1 result, IReportDocument& definition, ResolvedReport& tocReport, ReportBookTocPosition& tocReportPosition)\n at Telerik.Reporting.Processing.ResolvedReportDocument.Create(ReportSource rs, IProcessingContext context)\n at Telerik.Reporting.Processing.DocumentParametersManager`1..ctor(ReportSource definition, IProcessingContext processingContext, IParameterValueParser parameterValueParser)\n at Telerik.Reporting.Processing.DocumentParametersManager..ctor(ReportSource rs, IProcessingContext processingContext, IParameterValueParser parameterValueParser)\n at Telerik.Reporting.Services.Engine.ReportEngine.GetParameters(String clientID, String report, Dictionary`2 parameterValues)\n at Telerik.Reporting.Services.AspNetCore.ReportsControllerBase.GetParameters(String clientID, ClientReportSource reportSource)\n at lambda_method(Closure , Object , Object[] )\n at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncActionResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()\n--- End of stack trace from previous location where exception was thrown ---\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()\n--- End of stack trace from previous location where exception was thrown ---\n at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<
InvokeNextExceptionFilterAsync
>g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)"
}
Anybody can help me?
The Web Service Data Source will only POST the body of the Authentication request as 'text/plain' and I need to be able to authenticated to web services requiring 'application/json' content type.
Currently I am unable to authenticate due to a 415 Unsupported Media Type error.
Is there any way to change the content type in the header of the authentication request?
I want to print Detail Section in the first page, but it could not, all components's keep together are setted false, but it's no effort,
And the Catogary Name does not print on every Page.
My demo code is bellow:
<?
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
<
Report
Width
=
"18.1cm"
Name
=
"Report1"
xmlns
=
"http://schemas.telerik.com/reporting/2020/1.0"
>
<
DataSources
>
<
JsonDataSource
Name
=
"jsonDataSource1"
>
<
Source
>
<
String
>Ww0KeyJOYW1lIjoiVEVTVCIsICJBbW91bnQiOiAxfSwNCnsiTmFtZSI6IlRFU1QiLCAiQW1vdW50IjogMn0sDQp7Ik5hbWUiOiJURVNUIiwgIkFtb3VudCI6IDN9LA0KeyJOYW1lIjoiVEVTVCIsICJBbW91bnQiOiA0fSwNCnsiTmFtZSI6IlRFU1QiLCAiQW1vdW50IjogNX0sDQp7Ik5hbWUiOiJURVNUIiwgIkFtb3VudCI6IDZ9LA0KeyJOYW1lIjoiVEVTVCIsICJBbW91bnQiOiA3fSwNCnsiTmFtZSI6IlRFU1QiLCAiQW1vdW50IjogOH0sDQp7Ik5hbWUiOiJURVNUIiwgIkFtb3VudCI6IDl9LA0KeyJOYW1lIjoiVEVTVCIsICJBbW91bnQiOiAxMH0sDQp7Ik5hbWUiOiJURVNUIiwgIkFtb3VudCI6IDExfSwNCnsiTmFtZSI6IlRFU1QiLCAiQW1vdW50IjogMTJ9LA0KeyJOYW1lIjoiVEVTVCIsICJBbW91bnQiOiAxM30sDQp7Ik5hbWUiOiJURVNUIiwgIkFtb3VudCI6IDE0fSwNCnsiTmFtZSI6IlRFU1QiLCAiQW1vdW50IjogMTV9LA0KeyJOYW1lIjoiVEVTVCIsICJBbW91bnQiOiAxNn0sDQp7Ik5hbWUiOiJURVNUIiwgIkFtb3VudCI6IDE3fSwNCnsiTmFtZSI6IlRFU1QiLCAiQW1vdW50IjogMTh9LA0KeyJOYW1lIjoiVEVTVCIsICJBbW91bnQiOiAxOX0sDQp7Ik5hbWUiOiJURVNUIiwgIkFtb3VudCI6IDIwfQ0KXQ==</
String
>
</
Source
>
</
JsonDataSource
>
</
DataSources
>
<
Items
>
<
DetailSection
KeepTogether
=
"False"
Height
=
"1.217cm"
Name
=
"detailSection1"
>
<
Items
>
<
List
Width
=
"17.905cm"
Height
=
"1.217cm"
Left
=
"0cm"
Top
=
"0cm"
KeepTogether
=
"False"
Name
=
"list1"
>
<
Body
>
<
Cells
>
<
TableCell
RowIndex
=
"0"
ColumnIndex
=
"1"
RowSpan
=
"1"
ColumnSpan
=
"1"
>
<
ReportItem
>
<
Panel
Width
=
"16.2cm"
Height
=
"1.217cm"
Left
=
"0cm"
Top
=
"0cm"
KeepTogether
=
"False"
Name
=
"panel1"
>
<
Items
>
<
Table
DataSourceName
=
"jsonDataSource1"
Width
=
"16.2cm"
Height
=
"1.217cm"
Left
=
"0cm"
Top
=
"0cm"
KeepTogether
=
"False"
Name
=
"table1"
>
<
Body
>
<
Cells
>
<
TableCell
RowIndex
=
"0"
ColumnIndex
=
"2"
RowSpan
=
"1"
ColumnSpan
=
"1"
>
<
ReportItem
>
<
TextBox
Width
=
"5.4cm"
Height
=
"0.608cm"
Left
=
"0cm"
Top
=
"0cm"
Name
=
"textBox6"
>
<
Style
>
<
BorderStyle
Top
=
"Solid"
Bottom
=
"Solid"
Left
=
"Solid"
Right
=
"Solid"
/>
<
BorderColor
Top
=
"Black"
Bottom
=
"Black"
Left
=
"Black"
Right
=
"Black"
/>
<
BorderWidth
Top
=
"1pt"
Bottom
=
"1pt"
Left
=
"1pt"
Right
=
"1pt"
/>
</
Style
>
</
TextBox
>
</
ReportItem
>
</
TableCell
>
<
TableCell
RowIndex
=
"0"
ColumnIndex
=
"0"
RowSpan
=
"1"
ColumnSpan
=
"1"
>
<
ReportItem
>
<
TextBox
Width
=
"5.4cm"
Height
=
"0.608cm"
Left
=
"8.095cm"
Top
=
"0.6cm"
Value
=
"= Fields.Name"
Name
=
"textBox8"
StyleName
=
""
>
<
Style
>
<
BorderStyle
Top
=
"Solid"
Bottom
=
"Solid"
Left
=
"Solid"
Right
=
"Solid"
/>
</
Style
>
</
TextBox
>
</
ReportItem
>
</
TableCell
>
<
TableCell
RowIndex
=
"0"
ColumnIndex
=
"1"
RowSpan
=
"1"
ColumnSpan
=
"1"
>
<
ReportItem
>
<
TextBox
Width
=
"5.4cm"
Height
=
"0.608cm"
Left
=
"8.095cm"
Top
=
"0.6cm"
Value
=
"= Fields.Amount"
Name
=
"textBox2"
StyleName
=
""
>
<
Style
>
<
BorderStyle
Top
=
"Solid"
Bottom
=
"Solid"
Left
=
"Solid"
Right
=
"Solid"
/>
</
Style
>
</
TextBox
>
</
ReportItem
>
</
TableCell
>
</
Cells
>
<
Columns
>
<
Column
Width
=
"5.4cm"
/>
<
Column
Width
=
"5.4cm"
/>
<
Column
Width
=
"5.4cm"
/>
</
Columns
>
<
Rows
>
<
Row
Height
=
"0.608cm"
/>
</
Rows
>
</
Body
>
<
Corner
/>
<
Style
Visible
=
"True"
>
<
BorderStyle
Top
=
"Solid"
Bottom
=
"Solid"
Left
=
"Solid"
Right
=
"Solid"
/>
<
BorderColor
Top
=
"Black"
Bottom
=
"Black"
Left
=
"Black"
Right
=
"Black"
/>
<
BorderWidth
Top
=
"1pt"
Bottom
=
"1pt"
Left
=
"1pt"
Right
=
"1pt"
/>
</
Style
>
<
RowGroups
>
<
TableGroup
Name
=
"detailTableGroup"
>
<
Groupings
>
<
Grouping
/>
</
Groupings
>
</
TableGroup
>
</
RowGroups
>
<
ColumnGroups
>
<
TableGroup
Name
=
"tableGroup"
>
<
ReportItem
>
<
TextBox
Width
=
"5.4cm"
Height
=
"0.609cm"
Left
=
"0cm"
Top
=
"0cm"
Value
=
"Name"
Name
=
"textBox1"
>
<
Style
>
<
BorderStyle
Top
=
"Solid"
Bottom
=
"Solid"
Left
=
"Solid"
Right
=
"Solid"
/>
<
BorderColor
Top
=
"Black"
Bottom
=
"Black"
Left
=
"Black"
Right
=
"Black"
/>
<
BorderWidth
Top
=
"1pt"
Bottom
=
"1pt"
Left
=
"1pt"
Right
=
"1pt"
/>
</
Style
>
</
TextBox
>
</
ReportItem
>
</
TableGroup
>
<
TableGroup
Name
=
"tableGroup1"
>
<
ReportItem
>
<
TextBox
Width
=
"5.4cm"
Height
=
"0.609cm"
Left
=
"0cm"
Top
=
"0cm"
Value
=
"Amount"
Name
=
"textBox3"
>
<
Style
>
<
BorderStyle
Top
=
"Solid"
Bottom
=
"Solid"
Left
=
"Solid"
Right
=
"Solid"
/>
<
BorderColor
Top
=
"Black"
Bottom
=
"Black"
Left
=
"Black"
Right
=
"Black"
/>
<
BorderWidth
Top
=
"1pt"
Bottom
=
"1pt"
Left
=
"1pt"
Right
=
"1pt"
/>
</
Style
>
</
TextBox
>
</
ReportItem
>
</
TableGroup
>
<
TableGroup
Name
=
"tableGroup2"
>
<
ReportItem
>
<
TextBox
Width
=
"5.4cm"
Height
=
"0.609cm"
Left
=
"0cm"
Top
=
"0cm"
Name
=
"textBox5"
>
<
Style
>
<
BorderStyle
Top
=
"Solid"
Bottom
=
"Solid"
Left
=
"Solid"
Right
=
"Solid"
/>
<
BorderColor
Top
=
"Black"
Bottom
=
"Black"
Left
=
"Black"
Right
=
"Black"
/>
<
BorderWidth
Top
=
"1pt"
Bottom
=
"1pt"
Left
=
"1pt"
Right
=
"1pt"
/>
</
Style
>
</
TextBox
>
</
ReportItem
>
</
TableGroup
>
</
ColumnGroups
>
</
Table
>
</
Items
>
</
Panel
>
</
ReportItem
>
</
TableCell
>
<
TableCell
RowIndex
=
"0"
ColumnIndex
=
"0"
RowSpan
=
"1"
ColumnSpan
=
"1"
>
<
ReportItem
>
<
TextBox
Width
=
"1.705cm"
Height
=
"1.217cm"
Left
=
"0cm"
Top
=
"0cm"
KeepTogether
=
"False"
Value
=
"Catogary Name"
Name
=
"textBox7"
StyleName
=
""
>
<
Style
TextAlign
=
"Center"
VerticalAlign
=
"Middle"
/>
</
TextBox
>
</
ReportItem
>
</
TableCell
>
</
Cells
>
<
Columns
>
<
Column
Width
=
"1.705cm"
/>
<
Column
Width
=
"16.2cm"
/>
</
Columns
>
<
Rows
>
<
Row
Height
=
"1.217cm"
/>
</
Rows
>
</
Body
>
<
Corner
/>
<
Style
>
<
BorderStyle
Top
=
"Solid"
Bottom
=
"Solid"
Left
=
"Solid"
Right
=
"Solid"
/>
<
BorderColor
Top
=
"Black"
Bottom
=
"Black"
Left
=
"Black"
Right
=
"Black"
/>
<
BorderWidth
Top
=
"1pt"
Bottom
=
"1pt"
Left
=
"1pt"
Right
=
"1pt"
/>
</
Style
>
<
RowGroups
>
<
TableGroup
Name
=
"DetailGroup"
>
<
Groupings
>
<
Grouping
/>
</
Groupings
>
</
TableGroup
>
</
RowGroups
>
<
ColumnGroups
>
<
TableGroup
Name
=
"group"
/>
<
TableGroup
Name
=
"ColumnGroup"
/>
</
ColumnGroups
>
</
List
>
</
Items
>
</
DetailSection
>
<
ReportHeaderSection
KeepTogether
=
"False"
Height
=
"0.5cm"
Name
=
"reportHeaderSection1"
>
<
Items
>
<
TextBox
Width
=
"3cm"
Height
=
"0.5cm"
Left
=
"7.7cm"
Top
=
"0cm"
Value
=
"TEST"
Name
=
"textBox14"
/>
</
Items
>
</
ReportHeaderSection
>
</
Items
>
<
PageSettings
PaperKind
=
"Custom"
PaperSize
=
"210mm, 60mm"
Landscape
=
"False"
ContinuousPaper
=
"False"
>
<
Margins
>
<
MarginsU
Left
=
"1cm"
Right
=
"1cm"
Top
=
"1cm"
Bottom
=
"1cm"
/>
</
Margins
>
</
PageSettings
>
<
StyleSheet
>
<
StyleRule
>
<
Style
>
<
Padding
Left
=
"2pt"
Right
=
"2pt"
/>
</
Style
>
<
Selectors
>
<
TypeSelector
Type
=
"TextItemBase"
/>
<
TypeSelector
Type
=
"HtmlTextBox"
/>
</
Selectors
>
</
StyleRule
>
</
StyleSheet
>
</
Report
>
Can i set any custom message for parameter. below message is displayed by default.
Missing or Invalid parameter value. Please input valid data for all parameters.
Is there any option to give a custom message.
Regards
Prakash
Hi to all,
I'm trying to create a solution console that it has generate a DOCX file from my report.
I'm using this code, but on row 34 it gives me an error "DOCX rendering format is not available."
I have already add these dll:
01.
public
class
ReportHelper
02.
{
03.
public
static
Bundle SaveAsWord(
string
fileName, Bundle pBundle)
04.
{
05.
Bundle bundle =
new
Bundle();
06.
07.
try
08.
{
09.
//Create new CultureInfo
10.
var cultureInfo =
new
System.Globalization.CultureInfo(pBundle.Get(2).ToString());
11.
12.
// Set the language for static text (i.e. column headings, titles)
13.
System.Threading.Thread.CurrentThread.CurrentUICulture = cultureInfo;
14.
15.
// Set the language for dynamic text (i.e. date, time, money)
16.
System.Threading.Thread.CurrentThread.CurrentCulture = cultureInfo;
17.
18.
Telerik.Reporting.Processing.ReportProcessor reportProcessor =
new
Telerik.Reporting.Processing.ReportProcessor();
19.
20.
// set any deviceInfo settings if necessary
21.
System.Collections.Hashtable deviceInfo =
new
System.Collections.Hashtable();
22.
23.
24.
Telerik.Reporting.TypeReportSource typeReportSource =
new
Telerik.Reporting.TypeReportSource();
25.
26.
// reportName is the Assembly Qualified Name of the report
27.
typeReportSource.TypeName =
"MyReportName"
;
28.
typeReportSource.Parameters.Add(
"Par1"
, pBundle.Get(1).ToString());
29.
typeReportSource.Parameters.Add(
"Par2"
, pBundle.Get(3).ToString());
30.
typeReportSource.Parameters.Add(
"Par3"
, pBundle.Get(4).ToString());
31.
typeReportSource.Parameters.Add(
"Par4"
, pBundle.Get(5).ToString());
32.
typeReportSource.Parameters.Add(
"Par5"
, pBundle.Get(6).ToString());
33.
34.
Telerik.Reporting.Processing.RenderingResult result = reportProcessor.RenderReport(
"DOCX"
, typeReportSource, deviceInfo);
35.
36.
//string fileName = result.DocumentName + "." + result.Extension;
37.
string
path = System.IO.Path.GetTempPath();
38.
string
filePath = System.IO.Path.Combine(path, fileName);
39.
40.
using
(System.IO.FileStream fs =
new
System.IO.FileStream(filePath, System.IO.FileMode.Create))
41.
{
42.
fs.Write(result.DocumentBytes, 0, result.DocumentBytes.Length);
43.
}
44.
45.
bundle.Add(1,
true
);
46.
bundle.Add(2, filePath);
47.
}
48.
catch
(Exception ex)
49.
{
50.
bundle.Add(1,
false
);
51.
bundle.Add(2, ex.Message);
52.
bundle.Add(3, ex.StackTrace.ToString());
53.
}
54.
55.
return
bundle;
56.
}
57.
}
I want to be able to stop the execution of the ReportProcessor.PrintReport() and throw a custom error when the printer is unavailable (e.g: disconnected from the server) because instead of doing that the method is trying to find the printer and it freezes. if that's not possible a way to exit the method (timer?) would be good as well.
Regards,
Gaston.