Testing product and I like what I see. I can't wait for the next release.
On the other hand I added the sample proj to one of my test project to see how the report would react. And this is what I got. Can you have one of your guru's take a look at my error message and see if they know what going on? Error message is below. Thanks
Source Error: An unhandled exception was generated during the execution of the current web request.
Stack Trace: [SerializationException: Type 'Telerik.ReportViewer.WebForms.ServerReport' in Assembly 'Telerik.ReportViewer.WebForms, Version=1.0.0.0, Culture=neutral, PublicKeyToken=a9d7983dfcc261be' is not marked as serializable.]
32 Answers, 1 is accepted
We are glad to hear that you like the telerik Reporting.
We have not experienced the specified error before. To be able to answer your question we need more information about your test project. Could you give us some hints so that we can reproduce the problem? You can also open a support ticket and send us a sample application.
Kind regards,
Chavdar
the telerik team
Unable to serialize the session state. In 'StateServer' and 'SQLServer' mode, ASP.NET will serialize the session state objects, and as a result non-serializable objects or MarshalByRef objects are not permitted. The same restriction applies if similar serialization is done by the custom session state store in 'Custom' mode.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Web.HttpException: Unable to serialize the session state. In 'StateServer' and 'SQLServer' mode, ASP.NET will serialize the session state objects, and as a result non-serializable objects or MarshalByRef objects are not permitted. The same restriction applies if similar serialization is done by the custom session state store in 'Custom' mode.
Source Error:
|
Stack Trace:
[SerializationException: Type 'Telerik.ReportViewer.WebForms.ServerReport' in Assembly 'Telerik.ReportViewer.WebForms, Version=1.0.0.0, Culture=neutral, PublicKeyToken=a9d7983dfcc261be' is not marked as serializable.] System.Runtime.Serialization.FormatterServices.InternalGetSerializableMembers(RuntimeType type) +2318117 System.Runtime.Serialization.FormatterServices.GetSerializableMembers(Type type, StreamingContext context) +245 System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitMemberInfo() +88 System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(Object obj, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter, ObjectWriter objectWriter) +305 System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.Serialize(Object obj, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter, ObjectWriter objectWriter) +50 System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize(Object graph, Header[] inHeaders, __BinaryWriter serWriter, Boolean fCheck) +438 System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph, Header[] headers, Boolean fCheck) +131 System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph) +12 System.Web.Util.AltSerialization.WriteValueToStream(Object value, BinaryWriter writer) +2020 [HttpException (0x80004005): Unable to serialize the session state. In 'StateServer' and 'SQLServer' mode, ASP.NET will serialize the session state objects, and as a result non-serializable objects or MarshalByRef objects are not permitted. The same restriction applies if similar serialization is done by the custom session state store in 'Custom' mode.] System.Web.Util.AltSerialization.WriteValueToStream(Object value, BinaryWriter writer) +2124 System.Web.SessionState.SessionStateItemCollection.WriteValueToStreamWithAssert(Object value, BinaryWriter writer) +54 System.Web.SessionState.SessionStateItemCollection.Serialize(BinaryWriter writer) +852 System.Web.SessionState.SessionStateUtility.Serialize(SessionStateStoreData item, Stream stream) +255 System.Web.SessionState.SessionStateUtility.SerializeStoreData(SessionStateStoreData item, Int32 initialStreamSize, Byte[]& buf, Int32& length) +85 System.Web.SessionState.SqlSessionStateStore.SetAndReleaseItemExclusive(HttpContext context, String id, SessionStateStoreData item, Object lockId, Boolean newItem) +146 System.Web.SessionState.SessionStateModule.OnReleaseState(Object source, EventArgs eventArgs) +715 System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +167 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +117 |
Currently the StateServer and SQLServer session state modes are not supported by the Reporting tool. You can work only in the InProc mode. To change the session state mode you have to modify the configuration file of the web application (web.config) to the following pattern:
<system.web>
<sessionState mode="InProc"></sessionState>
....
We are sorry for the inconvenience. The other session state modes will be supported in future versions.
Greetings,
Chavdar
the telerik team
Just adding the Serializable attribute won't solve the problem. At this moment the Report type is not suitable for serialization as it references system objects that are not marked as serializable.
Greetings,
Chavdar
the telerik team
Adding support for the different Session states is not a trivial task, so we won't be able to accomplish this task for v1.0 of the Reporting. However, we'll do our best to include the feature for the v2.0 of the tool, due at the end of the year.
Greetings,
Chavdar
the telerik team
do you really want to support only the very buggy and unstable (at least in shared environments) "InProc" mode? for companies i worked for and/or worked with is the "InProc"-mode a big "No-No" (...even it's faster, i know)
"However, we'll do our best to include the feature for the v2.0 of the tool, due at the end of the year".
lol, at least i and other people can start looking for another .net reporting tool in the meanwhile. i started testing the telerik reporting betas and had fun and it was really promising and something looking forward to - until i figured that it doesn't support StateServer and SQLServerState. For what exactly needs a reporting tool ("just" another third party control - or not?) a state anyways? for paging through the reports?
whatever, i think this thread will become really important, specially in the future when the paid RTM version is out. i wanna see people's faces... hopefully the majority will test this tool first.
i'm very disappointed from telerik
daniel
ps: or is there a way to use "InProc" (just for the reports) and "ServerState" side-by-side in one application?
pps: i also get the following error-message on a medium-trust-server:
Server Error in '/' Application.
Security Exception
Description: The application attempted to perform an operation not allowed by the security policy. To grant this application the required permission please contact your system administrator or change the application's trust level in the configuration file.Exception Details: System.Security.SecurityException: Request for the permission of type 'System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.
Source Error:
An unhandled exception was generated during the execution of the
current web request. Information regarding the origin and location of
the exception can be identified using the exception stack trace below.
|
Stack Trace:
[SecurityException: Request for the permission of type 'System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.] |
does that mean it also doesn't run on medium-trust-servers?
ppps: i also found an error in your web-demo for beta 2: you should either rename the file ReportViewer.aspx and the code behind-class ReportViewer.aspx.cs (i.e. ViewReports.aspx/+.cs) or put the code behind-class in a namespace (which makes it, at least for the demo, more complicated and i think that's not necessary), because it's the same name as your control/class <telerik:ReportViewer> . my local system didn't mind, but my server didn't like it and came up with an error message: cannot convert type ...
it looks like that telerik reporting is also not working in medium-trusted-environments - which i think is weird, 'cause all the other telerik controls are working just fine. what i found out during my researches is that (i think) all other reporting tools do the same (datadynamics activereports for .net, developer express xtrareports, and so on). on the search for a medium trust reporting tool and studying their forums they are almost all working on lower trust levels. so, the point is: why wasting time and manpower on finishing version 1.0 and do a complete redesign of the reporting application for version 2.0 instead of doing so in the first place? i don't really get it. the same with the session state-problem. if you would implement these "features" directly you would stick out of all the other third party control vendors...
just a thought...
greetz
daniel
You could just create a seperate reporting application and run that in inproc mode.
(You seem to give inproc mode a pretty harsh rap - what specifically are you struggling with? It isn't inherently unstable as such.)
session gets lost when the application recycles, or the worker process (aspnet_wp.exe) restarts [or of course the web server itself], and for various other reasons (just ask google for infos, you'll find lots of it). it's also unusable for web farms (even load balancers can handle that nowadays for the cost of more memory and performance consumption) and it's not allowed in web gardens, 'cause every aspnet_wp.exe uses it's own memory, unshared.
according to microsoft: state server's performance cost of serialization and deserialization are about 15% (sql server 25%), if i remember right. and i think it's an affordable price for reliability/stability.
here you'll find a good explanation why not using "InProc"...
http://community.sgdotnet.org/blogs/chuawenching/archive/2007/01/30/Session-State-Management-in-Project_3A00_-Migrate-In_2D00_Proc-to-Out_2D00_Proc-State-Server.aspx
and here including comments...
http://blogs.msdn.com/tims/archive/2003/11/21/57453.aspx
but telling you the truth:
i'm personally more concerned that telerik reporting will not run in medium trust mode. and i'm even more concerned that (as far as i know) all 3rd party reporting tools need a full trust server. and lots'n'lots of people have this kind of problem - they are bound to lower trusted servers, cause of company security concerns or cause they use shared web servers (which are in most all cases medium trusted - which makes a lot of sense.)
i did a lot of googling and it really drove and still drives me nuts! i found some ideas, but i had no success trying these things out:
http://blogs.infragistics.com/blogs/tony_lombardo/archive/2006/04/17/149.aspx
http://finalprefix.com/Tutorials/HowToCallStrongNamedAssembliesFromMediumTrustCode
well, maybe somebody else has success with that stuff...
it would be really nice if telerik could say something to these points...
Thank you for the time spent sharing your experience and feedback with us, and for your willingness to help telerik develop a superior product. The discussion you've started is very interesting and quite beneficial for us.
We, in the Reporting team, have no doubt how important it is for one enterprise application to work in a web farm or web garden, so we will do our best to allow the reporting engine to work in all session state modes - not only in the InProc. We are currently working on the web report viewer and the report engine and I can assure you that for the official release you will be able to use the telerik Reporting with the SessionServer or SQL Server as your session storage.
The question with running the Reporting in a medium trust application is a little bit more complicated. As you know this isolation level places many constraints and the restricted reflection permissions are the ones that worry us the most. Currently the reporting engine depends extensively on reflection. For example the different rendering formats are pluggable to the reporting engine via reflection. This way you can easily manage the available exporting formats - remove any or add your own format. But the reporting extensions are just a little part of the whole reflection usage.
Since the problems in medium trust are of higher priority for us we're looking for possible solutions will do our best to be ready with it for the official release of v.1 or shortly after that.
Sincerely yours,
Rossen
the telerik team
Instantly find answers to your questions at the new telerik Support Center
Firstly Chavdar said this:
Adding support for the different Session states is not a trivial task, so we won't be able to accomplish this task for v1.0 of the Reporting. However, we'll do our best to include the feature for the v2.0 of the tool, due at the end of the year.
Then you've said this:
We are currently working on the web report viewer and the report engine and I can assure you that for the official release you will be able to use the telerik Reporting with the SessionServer or SQL Server as your session storage.
Is this an official change in strategy or a typo?
The session issue is quite fundamental so we decided to pull it forward and do our best to fix it for the v1.
Regards,
Svetoslav
the telerik team
Instantly find answers to your questions at the new telerik Support Center
Mid-trust support means support for shared hosting as well and support for corporate settings with tight security - this is a huge market which you will just write off if mid-trust in not supported.
@surfer: i agree with you
. if i can quote from chavdar:
For now, we could hardly compare to the CrystalReports as they have been working in this field for more than 15 years.
http://telerik.com/community/forums/thread/b311D-gkbmd.aspx
and of course, that makes a lot of sense. of course businessobjects with crystal reports or datadynamics with activereports have a lot more experience in this field then you guys. but implementing these "features" from the scratch would have benefits for telerik and their costumers - because that would be the first B I G d i f f e r e n c e comparing to other tools from other vendors - and as you probably know: there are lots of them competing. and "fancy"-features could be implemented later in time..
i think both (state/sql server and medium-trust) are equivalent important
for small and big companies as well.
ps: i think in the meanwhile waiting for a product, i have to write the reports with the "good old" datarepeater :-( without pdf/excel exports :-(
The Reporting tool has been requested extensively by our clients and we have been working on this project for quite some time. The deadline we have for the first release (end of April) is set with our customers in mind - we simply want to push the product out of the door and offer it to all of you eager users. If we are to include some extra features we will have to push the release date, for sure. This will be quite inconvenient for most of our clients as they want to start using our tool as soon as it becomes available.
Nevertheless, we are open to any ideas and we will do our best to add new features for the first version, but only if time permits. Actually, as seen from my colleagues' posts, we have done just that with the decision to provide support for using the telerik Reporting with SessionServer or SQL Server as session storage in its first version.
Again, thank you for the feedback and reasoning. All of it has been taken into consideration.
Greetings,
Rob
the telerik team
Instantly find answers to your questions at the new telerik Support Center
Kind regards,
Svetoslav
the telerik team
Instantly find answers to your questions at the new telerik Support Center
http://www.telerik.com/community/forums/thread/b311D-thckg.aspx
Even though all of the Telerik Reporting assemblies are marked with AllowPartiallyTrustedCallers attribute there are several issues that prevent our tool from operating in a medium trust environment. We are doing our best to fix them in the next release.
Let us know if you have other questions - we will be happy to help.
Sincerely yours,
Svetoslav
the telerik team
Instantly find answers to your questions at the new Telerik Support Center
Just so I'm clear, my understanding is that the Reporting assemblies ARE mark with AllowPartiallyTrustedCallers. However, when adding these to the Global Assembly Cache, it still will not operate correctly (or as expected) in a medium trust environment.
Thanks,
Eric
We've modified our previous reply in this thread because we found that it was misleading and somehow not accurate.
Yes, all the assemblies are marked with the AllowPartiallyTrustedCallersAttribute. There are several other issues that prevent us from operating in a secured environment and the we're currently fighting with.
Best wishes,
Svetoslav
the telerik team
Instantly find answers to your questions at the new Telerik Support Center
It is my pleasure to let you know that we have just released Telerik Reporting Q3 2007. In this release, you will find many new features, including the one you have been asking for - Export to Excel.
The Excel Rendering Extension preserves the look and feel of the original report and gives you the opportunity to manipulate the data locally. It does not rely on the Microsoft Office engine, meaning that you do not need Microsoft Excel installed on the machine. This saves costs for new Office licenses and time-consuming installations. Exported files can be opened on the client with Microsoft Excel 97 and later.
To find out more about the new Telerik Reporting Features, please review What’s New in Telerik Reporting Q3 2007 and the Release Notes.
We will be happy to hear your feedback about the latest version of our reporting product.
Merry Xmas!
Greetings,
Trayko Stoilov
the telerik team
Instantly find answers to your questions at the new Telerik Support Center
Thanks.
The current release of Telerik Reporting (Q3 2007) supports SQLServer and StateServer session modes so you should not have any problems with your configuration. However, it still does not work in medium trust environment.
You can also open a support ticket and send us the error message with the stack trace so that we can check what exactly is the problem.
Regards,
Chavdar
the Telerik team
Instantly find answers to your questions at the new Telerik Support Center
I have some report code that was working until recently...
After many headaches I realised that switching the session state mode to mode="SQLServer" was causing the problems...
There were two problems in "SQLServer" mode:
1) The report speed - A report with only 7 records which was almost instant "InProc" became much slower (Several seconds)
2) After instantiating the Report object in code:
I call a routine which sets up Groups in the report, this call works "InProc" but not in "SQLServer" session mode
It seems that using "SQLServer"session mode, any calls to public report subs or parameters don't have any effect??
eg. TelerikReport.ReportParameters("Company").Value = "Richard Miller & Co."
I've attached the code used below and I'm using the latest Reporting Version Q2 2008....
Hope you can shine some light on this...
Regards
Martin
PS: The ability to "hook" the report into Ajax is a great step forward!
-------------------------------------------------------
Code to load/process the Report
-------------------------------------------------------
' Get Reference to the Report Assembly
Dim asm As Reflection.Assembly = [Assembly].Load("CaseReports")
' Instantiate the Report from the Assembly
Dim ReportName As String = "List001"
Dim reportType As Type= asm.GetType("CaseReports." & ReportName)
Dim TelerikReport As New Object
TelerikReport = Activator.CreateInstance(reportType)
' Setup the Report Groups
TelerikReport.Setup_Report(eGroup.TransactionType, eDirection.Asc, eDatePeriod.None, False)
' Setup the Company Name
TelerikReport.ReportParameters("Company").Value = "Richard Miller & Co."
' Set the BLL method to call
Me.ObjectDataSourceReport.SelectMethod = "ReportCase_List"
' Give the Data source to the Report
TelerikReport.DataSource = Me.ObjectDataSourceReport
' Bind the Report to the Viewer
ReportViewer1.Report = TelerikReport
-------------------------------------------------------
' End of Code to load/process the Report
-------------------------------------------------------
One of the differences between the InProc and SqlServer session state modes is that when using the first one the instance of the report definition is kept in memory while in the second mode it should be serialized and deserialized. When deserializing the report is created through reflection by calling the report's default constructor (through Activator.CreateInstance()). In this way any methods which configure the report definition after it has been created could not be reapplied so everything should be configured only in the report's constructor. This applies in case of using SQLServer or StateServer session modes.
More info about the differences between different state modes you can find in the ASP.NET Session State documentation article.
Report parameters are really not shown when using a state server or sql server modes. This is an issue which will be fixed for the upcoming service pack in a couple of weeks. Your points have been updated for letting us know about the problem.
Greetings,
Chavdar
the Telerik team
Check out Telerik Trainer, the state of the art learning tool for Telerik products.
As always your explanations are well thought out...
Regards
Martin
<add path="Telerik.Web.UI.WebResource.axd" verb="*" type="Telerik.Web.UI.WebResource, Telerik.Web.UI" validate="false" />