Yao Naiming
Top achievements
Rank 1
Yao Naiming
asked on 10 Sep 2010, 07:37 AM
Hello:
When I use report in my silverlight appliction,there is always an error like this :"An exception occurred during the operation, making the result invalid. Check InnerException for exception details".My report's datasource is objectdatasource,it can be previewed in the report class library,but when i use it in the silverlight application,an exception will be occured as above.However,when my report's datasource is sqldatasource,there is no error or exception and it will return right result.I don't known if i miss some dll or other files in my silverlight application.
My development environment: Windows Server 2008; VS2010; Silverlight 4.0; Reporting Q2 2010
Please write back as soon as possible!
Thanks!
When I use report in my silverlight appliction,there is always an error like this :"An exception occurred during the operation, making the result invalid. Check InnerException for exception details".My report's datasource is objectdatasource,it can be previewed in the report class library,but when i use it in the silverlight application,an exception will be occured as above.However,when my report's datasource is sqldatasource,there is no error or exception and it will return right result.I don't known if i miss some dll or other files in my silverlight application.
My development environment: Windows Server 2008; VS2010; Silverlight 4.0; Reporting Q2 2010
Please write back as soon as possible!
Thanks!
15 Answers, 1 is accepted
0
Hello Yao Naiming,
Best wishes,
Steve
the Telerik team
The exception thrown in the viewer is a generic one and it might be due to various reasons.
In order to get more information about the actual problem try the following:
- show the Output window in Visual Studio and check whether there is an exception when you're running your application in debug mode.
- access the .svc file directly in your browser to see if it reports any problems.
- enable the CLR exceptions from Debug --> Exceptions menu in Visual Studio and run your project in debug.
Best wishes,
Steve
the Telerik team
Do you want to have your say when we set our development plans?
Do you want to know when a feature you care about is added or when a bug fixed?
Explore the
Telerik Public Issue Tracking
system and vote to affect the priority of the items
0
Yao Naiming
Top achievements
Rank 1
answered on 14 Sep 2010, 03:15 AM
Hello Steve,
Thanks for your reply. I have done as what you said, but i still get the same exception and anything else was not found. I have reviewed the demo Silverlight application and the ReportLibrary. In the DataBing folder, i find the class Cars definition. The differences between class Cars and my own class Crops is that, class Cars' data is static, but my class Crops' data is got dynamicly from the Database SQL Server 2008. You can see my class Crops definition in the code snippets.
I successfully bind the demo data Cars in a report and show the report in my Silverlight application, but when i bind my data Crops in a report, i can preview the data in the report, unluckily can't show in the Silverlight application, only throw the excetpion as i have described before.
Please help me!
Thanks!
Thanks for your reply. I have done as what you said, but i still get the same exception and anything else was not found. I have reviewed the demo Silverlight application and the ReportLibrary. In the DataBing folder, i find the class Cars definition. The differences between class Cars and my own class Crops is that, class Cars' data is static, but my class Crops' data is got dynamicly from the Database SQL Server 2008. You can see my class Crops definition in the code snippets.
public
class
Crop
{
public
int
CropKey {
get
;
set
; }
public
string
CropName {
get
;
set
; }
public
string
TimeKey {
get
;
set
; }
public
string
Location {
get
;
set
; }
}
public
class
Crops : List<Crop>
{
public
Crops()
{
CropData crop;
string
connStr =
"Data Source=teamsrv1;Initial Catalog=APQSEWS_Volume1;User ID=sa;Password=123456"
;
string
strSql =
"select * from Fact_CropProduction"
;
SqlConnection Conn =
new
SqlConnection(connStr);
SqlDataAdapter Da =
new
SqlDataAdapter(strSql, Conn);
DataTable dataTable =
new
DataTable();
Da.Fill(dataTable);
for
(
int
i = 0; i < dataTable.Rows.Count; i++)
{
crop =
new
CropData();
crop.TimeKey = dataTable.Rows[i][
"DimTimeKey"
].ToString();
crop.CropKey = Int32.Parse(dataTable.Rows[i][
"DimCropProductionKey"
].ToString());
string
strSql1 =
"select * from Dim_CropProduction where [Key]='"
+ crop.CropKey +
"'"
;
SqlDataAdapter Da1 =
new
SqlDataAdapter(strSql1, Conn);
DataTable dataTable1 =
new
DataTable();
Da1.Fill(dataTable1);
for
(
int
j = 0; j < dataTable1.Rows.Count; j++)
{
int
temCropDepth = Int32.Parse(dataTable1.Rows[0][
"Depth"
].ToString());
switch
(temCropDepth)
{
case
1:
crop.CropName = dataTable1.Rows[0][
"Level1"
].ToString();
break
;
case
2:
crop.CropName = dataTable1.Rows[0][
"Level2"
].ToString();
break
;
case
3:
crop.CropName = dataTable1.Rows[0][
"Level3"
].ToString();
break
;
case
4:
crop.CropName = dataTable1.Rows[0][
"Level4"
].ToString();
break
;
case
5:
crop.CropName = dataTable1.Rows[0][
"Level5"
].ToString();
break
;
case
6:
crop.CropName = dataTable1.Rows[0][
"Level6"
].ToString();
break
;
default
:
break
;
}
}
int
LocKey = Int32.Parse(dataTable.Rows[i][
"DimGeographyKey"
].ToString());
string
strSql2 =
"select * from Dim_Geography where [Key]='"
+ LocKey +
"'"
;
SqlDataAdapter Da2 =
new
SqlDataAdapter(strSql2, Conn);
DataTable dataTable2 =
new
DataTable();
Da2.Fill(dataTable2);
for
(
int
k = 0; k < dataTable2.Rows.Count; k++)
{
int
temLocDepth = Int32.Parse(dataTable2.Rows[0][
"Depth"
].ToString());
switch
(temLocDepth)
{
case
1:
crop.Location = dataTable2.Rows[0][
"World"
].ToString();
break
;
case
2:
crop.Location = dataTable2.Rows[0][
"Continent"
].ToString();
break
;
case
3:
crop.Location = dataTable2.Rows[0][
"Nation"
].ToString();
break
;
case
4:
crop.Location = dataTable2.Rows[0][
"Province"
].ToString();
break
;
case
5:
crop.Location = dataTable2.Rows[0][
"City"
].ToString();
break
;
case
6:
crop.Location = dataTable2.Rows[0][
"County"
].ToString();
break
;
default
:
break
;
}
}
this
.Add(crop);
}
}
}
Please help me!
Thanks!
0
Hi Yao,
Most of the demo reports that are part of the Visual Studio examples are bound to a database through our Data Source Components, and the ListBound report you refer to is the only one bound to a static class. Please use any of the other reports for testing. Additionally you have not provided details about the stack trace in Output window or what is the result when you try to access the .svc file directly in your browser - can you comment?
All the best,
Steve
the Telerik team
Most of the demo reports that are part of the Visual Studio examples are bound to a database through our Data Source Components, and the ListBound report you refer to is the only one bound to a static class. Please use any of the other reports for testing. Additionally you have not provided details about the stack trace in Output window or what is the result when you try to access the .svc file directly in your browser - can you comment?
All the best,
Steve
the Telerik team
Do you want to have your say when we set our development plans?
Do you want to know when a feature you care about is added or when a bug fixed?
Explore the
Telerik Public Issue Tracking
system and vote to affect the priority of the items
0
Equipe Info
Top achievements
Rank 1
answered on 16 Sep 2010, 10:22 AM
Hello,
I have the exact same exception in the reportviewer of my silverlight application. Nothing in the output window and nothing in the svc...
But why isn't there a method like RenderBegin, called RenderEnded ??? Therefore we will be able to catch the exception and debug our application !
Can the problem come from a large amount of pages generated or is there no limitation ?
Thanks,
Michael
I have the exact same exception in the reportviewer of my silverlight application. Nothing in the output window and nothing in the svc...
But why isn't there a method like RenderBegin, called RenderEnded ??? Therefore we will be able to catch the exception and debug our application !
Can the problem come from a large amount of pages generated or is there no limitation ?
Thanks,
Michael
0
Equipe Info
Top achievements
Rank 1
answered on 16 Sep 2010, 03:21 PM
I kept on testing the reportviewer with more data and here is where I came to :
With a report of 500 pages, the report shows in the ReportViewer.
With a report of 1000 pages, it doesn't show in the componant, and I have the same error as Yao Naiming does...
So, the page count of the report seems to be a limitation of the report viewer.
Also, IIS seems to overload on each refresh of the report. How can we deal with the usage of memory in the report ?
The main problem seems to be among this...
Sincerely,
Michael
With a report of 500 pages, the report shows in the ReportViewer.
With a report of 1000 pages, it doesn't show in the componant, and I have the same error as Yao Naiming does...
So, the page count of the report seems to be a limitation of the report viewer.
Also, IIS seems to overload on each refresh of the report. How can we deal with the usage of memory in the report ?
The main problem seems to be among this...
Sincerely,
Michael
0
Yao Naiming
Top achievements
Rank 1
answered on 17 Sep 2010, 03:21 AM
Hello,Steve
I have tried other reports in your demos, all of them perform very well in my Silverlight application. I also access the .svc file directly in my browser, it seems to work normally. You can see it as follow:
Thanks,
Yao
I have tried other reports in your demos, all of them perform very well in my Silverlight application. I also access the .svc file directly in my browser, it seems to work normally. You can see it as follow:
ReportService Service
You have created a service.
To test this service, you will need to create a client and use it to call the service. You can do this using the svcutil.exe tool from the command line with the following syntax:
svcutil.exe http://localhost:27795/ReportService.svc?wsdl
This will generate a configuration file and a code file that contains the client class. Add the two files to your client application and use the generated client class to call the Service. For example:
C#
class Test
{
static void Main()
{
ReportServiceClient client = new ReportServiceClient();
// Use the 'client' variable to call operations on the service.
// Always close the client.
client.Close();
}
}
Visual Basic
Class Test
Shared Sub Main()
Dim client As ReportServiceClient = New ReportServiceClient()
' Use the 'client' variable to call operations on the service.
' Always close the client.
client.Close()
End Sub
End Class
Yao
0
Yao Naiming
Top achievements
Rank 1
answered on 17 Sep 2010, 04:04 AM
Hello Equipe Info,
I think you are right. I have tried many times using different size of data, when the data is not large, it can be shown in the Silverlight application, or else the exception will be thrown.
Thanks,
Yao
I think you are right. I have tried many times using different size of data, when the data is not large, it can be shown in the Silverlight application, or else the exception will be thrown.
Thanks,
Yao
0
Equipe Info
Top achievements
Rank 1
answered on 17 Sep 2010, 09:07 AM
Hello Yao Naiming,
I think the problem might come from 3 possible ways :
- The ReportViewer configuration to show page by page.
- The Reporting Service from Telerik that can't handle too many pages.
- IIS Configuration : maybe do you know if there is a parameter to increase cache for the Silverlight Application... (FYI, I'm testing in localhost).
Hope this helps !
Michael
I think the problem might come from 3 possible ways :
- The ReportViewer configuration to show page by page.
- The Reporting Service from Telerik that can't handle too many pages.
- IIS Configuration : maybe do you know if there is a parameter to increase cache for the Silverlight Application... (FYI, I'm testing in localhost).
Hope this helps !
Michael
0
Hello guys,
Can you confirm that the problematic reports render ok in any of the other viewers e.g. web report viewer or windows forms viewer. If they do, then most likely the WCF service times out and you should increase the
corresponding bindings attributes e.g.
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBindingConfig"
maxReceivedMessageSize="10485760" maxBufferSize="10485760" maxBufferPoolSize="10485760"
receiveTimeout="00:05:00" sendTimeout="00:05:00" openTimeout="00:05:00" closeTimeout="00:05:00"/>
</basicHttpBinding>
</bindings>
Sincerely yours,
Steve
the Telerik team
Can you confirm that the problematic reports render ok in any of the other viewers e.g. web report viewer or windows forms viewer. If they do, then most likely the WCF service times out and you should increase the
corresponding bindings attributes e.g.
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBindingConfig"
maxReceivedMessageSize="10485760" maxBufferSize="10485760" maxBufferPoolSize="10485760"
receiveTimeout="00:05:00" sendTimeout="00:05:00" openTimeout="00:05:00" closeTimeout="00:05:00"/>
</basicHttpBinding>
</bindings>
Sincerely yours,
Steve
the Telerik team
Do you want to have your say when we set our development plans?
Do you want to know when a feature you care about is added or when a bug fixed?
Explore the
Telerik Public Issue Tracking
system and vote to affect the priority of the items
0
Equipe Info
Top achievements
Rank 1
answered on 22 Sep 2010, 10:12 AM
Thanks for the help but it didn't worked...
I used your webconfig settings in the Csharp.ReportExamples.VS2008 using the SilverlightDemo, and I still get the same error...
If you could test it in a sample project it would be great ! Just populate a SQL Database table with enough rows to make 1000 pages and see if it works... If it does, the problem is on our side, if not, it's probably the Telerik Reporting Service...
Please give us a quick answer because we are already considering other solutions...
Many thanks,
Michael
I used your webconfig settings in the Csharp.ReportExamples.VS2008 using the SilverlightDemo, and I still get the same error...
If you could test it in a sample project it would be great ! Just populate a SQL Database table with enough rows to make 1000 pages and see if it works... If it does, the problem is on our side, if not, it's probably the Telerik Reporting Service...
Please give us a quick answer because we are already considering other solutions...
Many thanks,
Michael
0
Accepted
Hi guys,
Find attached a sample Silverlight project that renders a 1220 pages reports into our Silverlight viewer. Review it and carefully and let us know if further help is needed.
Kind regards,
Steve
the Telerik team
Find attached a sample Silverlight project that renders a 1220 pages reports into our Silverlight viewer. Review it and carefully and let us know if further help is needed.
Kind regards,
Steve
the Telerik team
Do you want to have your say when we set our development plans?
Do you want to know when a feature you care about is added or when a bug fixed?
Explore the
Telerik Public Issue Tracking
system and vote to affect the priority of the items
0
Equipe Info
Top achievements
Rank 1
answered on 28 Sep 2010, 01:30 PM
Hello,
It seems to work better for the rendering maybe because you are using the IReportServiceClientFactory...
But still, when exporting the report to PDF, got the same error...
And why is the rendering taking so much time ? I have to say that I saw other reporting services going much more faster... Is it our configuration that is reponsible of this time or do you have the same thing on your side ?
Thanks,
Michael
It seems to work better for the rendering maybe because you are using the IReportServiceClientFactory...
But still, when exporting the report to PDF, got the same error...
And why is the rendering taking so much time ? I have to say that I saw other reporting services going much more faster... Is it our configuration that is reponsible of this time or do you have the same thing on your side ?
Thanks,
Michael
0
Hi Michael,
The problem is that the report service generates an output message that exceeds the maximum size quota I've specified (randomly inputted). To correct this I've specified int.MaxValue as value for the MaxBufferSize and the MaxReceivedMessageSize properties of the BasicHttpBinding object.
However the whole operation (rendering the report in the viewer and the export to PDF) now take around 15 minutes, so it is highly advisable that you filter your data to show less records based on certain criteria.
Greetings,
Steve
the Telerik team
However the whole operation (rendering the report in the viewer and the export to PDF) now take around 15 minutes, so it is highly advisable that you filter your data to show less records based on certain criteria.
Greetings,
Steve
the Telerik team
Do you want to have your say when we set our development plans?
Do you want to know when a feature you care about is added or when a bug fixed?
Explore the
Telerik Public Issue Tracking
system and vote to affect the priority of the items
0
Yao Naiming
Top achievements
Rank 1
answered on 05 Oct 2010, 02:37 PM
Hello Steve,
Thanks for your reply. I think you are right. Indeed, I should filter my data. But i think you need to consider this problem in the next version, perhaps someone need this kind of performance.
Thanks for your reply. I think you are right. Indeed, I should filter my data. But i think you need to consider this problem in the next version, perhaps someone need this kind of performance.
0
Hi Yao Naiming,
I can assure you that we are constantly working towards better performance with each version, but we hope you appreciate that this is a complex product and refactoring code for performance purposes requires time and has to be done carefully in order to avoid breaking changes or introducing high number of bugs.
We believe this is normal having in mind that our reporting product is still very young and we are still catching up with other vendors features wise. Once all missing features are covered, we would be able to concentrate on performance.
Best wishes,
Steve
the Telerik team
I can assure you that we are constantly working towards better performance with each version, but we hope you appreciate that this is a complex product and refactoring code for performance purposes requires time and has to be done carefully in order to avoid breaking changes or introducing high number of bugs.
We believe this is normal having in mind that our reporting product is still very young and we are still catching up with other vendors features wise. Once all missing features are covered, we would be able to concentrate on performance.
Best wishes,
Steve
the Telerik team
Do you want to have your say when we set our development plans?
Do you want to know when a feature you care about is added or when a bug fixed?
Explore the
Telerik Public Issue Tracking
system and vote to affect the priority of the items