BrokenRule not serializable?


Author
Message
PeterA
PeterA
StrataFrame Novice (76 reputation)StrataFrame Novice (76 reputation)StrataFrame Novice (76 reputation)StrataFrame Novice (76 reputation)StrataFrame Novice (76 reputation)StrataFrame Novice (76 reputation)StrataFrame Novice (76 reputation)StrataFrame Novice (76 reputation)StrataFrame Novice (76 reputation)
Group: Forum Members
Posts: 72, Visits: 235
I've run into some trouble since I solved one problem with business object data disappearing before I wanted it to. I'd switched to using the ASP.NET state server for session handling and solved all the oddball problems I was having with business objects "timing out" and the data disappearing before I was ready for it to. Unfortunately, I now get an error anytime I have broken rules in my object. Here's the stack trace:



[SerializationException: Type 'MicroFour.StrataFrame.Business.BrokenRule' in Assembly 'MicroFour StrataFrame Business, Version=1.6.0.0, Culture=neutral, PublicKeyToken=99fe9917f71608a7' is not marked as serializable.]

System.Runtime.Serialization.FormatterServices.InternalGetSerializableMembers(RuntimeType type) +2317797

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.Web.Util.AltSerialization.WriteValueToStream(Object value, BinaryWriter writer) +1513



[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) +1602

System.Web.SessionState.SessionStateItemCollection.WriteValueToStreamWithAssert(Object value, BinaryWriter writer) +34

System.Web.SessionState.SessionStateItemCollection.Serialize(BinaryWriter writer) +627

System.Web.SessionState.SessionStateUtility.Serialize(SessionStateStoreData item, Stream stream) +257

System.Web.SessionState.SessionStateUtility.SerializeStoreData(SessionStateStoreData item, Int32 initialStreamSize, Byte[]& buf, Int32& length) +60

System.Web.SessionState.OutOfProcSessionStateStore.SetAndReleaseItemExclusive(HttpContext context, String id, SessionStateStoreData item, Object lockId, Boolean newItem) +87

System.Web.SessionState.SessionStateModule.OnReleaseState(Object source, EventArgs eventArgs) +355

System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +92

System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +64




Is there a reason the BrokenRule object wasn't made serializable? Is there any other way I might be able to get this working with ASP.NET State Server without having to completely re-write the application?



Any help would be appreciated.



Thanks!

Trent Taylor
Trent Taylor
StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)
Group: StrataFrame Developers
Posts: 6.6K, Visits: 6.9K
If you look at the source code, the BrokenRules collection did have the Serialize() attribute....but the BrokenRule item did not.  I added the Serialize() attribute to the BrokenRule class.  See if this resolves your problem.  You may have to restart IIS or restart the application pool once you have copied out the new assemblies before they take effect.
Attachments
StrataFrame_Assemblies.zip (78 views, 1.00 MB)
PeterA
PeterA
StrataFrame Novice (76 reputation)StrataFrame Novice (76 reputation)StrataFrame Novice (76 reputation)StrataFrame Novice (76 reputation)StrataFrame Novice (76 reputation)StrataFrame Novice (76 reputation)StrataFrame Novice (76 reputation)StrataFrame Novice (76 reputation)StrataFrame Novice (76 reputation)
Group: Forum Members
Posts: 72, Visits: 235
Trent L. Taylor (10/26/2007)
If you look at the source code, the BrokenRules collection did have the Serialize() attribute....but the BrokenRule item did not. I added the Serialize() attribute to the BrokenRule class. See if this resolves your problem. You may have to restart IIS or restart the application pool once you have copied out the new assemblies before they take effect.




That's what I noticed in the source when I reviewed it. I would have made the change myself and compiled the assemblies, but there's been enough fixes made that we don't have the most updated version of the source code (we have whatever is available for download when we bought the framework. Does the source code installer get updated when you guys make a fix for us (or anyone else, for that matter)?



Thanks for putting a rush on this. I downloaded and installed the new assemblies and it fixed the problem. Big load off my stress. Smile



Thanks!
Trent Taylor
Trent Taylor
StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)
Group: StrataFrame Developers
Posts: 6.6K, Visits: 6.9K
Glad it fixed your problem!  Well, these types of fixes are not an official release so we do not rebuild the source for each as this requires some effort and is part of the installation build cycle.  We will release 1.6.2 farily soon which has all of these changes and many more.  We send out a notification whenever we post a new build. 

Glad this took some stress of...now hopefully you can enjoy the remainder of your weekend! Smile

GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Similar Topics

Reading This Topic

Login

Explore
Messages
Mentions
Search