1
Vote

Installing and starting Cloudboard get Exception

description

On WinXP SP3 gets exception on startup.
 
JPG of exception attached.
 
What is wrong and how do I fix it?

file attachments

comments

ahopper wrote Aug 17, 2009 at 1:29 PM

It appears that the previous release contained an older version of the Cloudboard.exe image. Please see if the recent v1.0.27.0 release (http://cloudboard.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=31663#DownloadId=79520) resolves your issue.

Thanks!
-Andy Hopper

dbaechtel wrote Aug 17, 2009 at 4:40 PM

No, I still get the same or similar exception on startup of v1.0.27.0.

Not fixed.

ahopper wrote Aug 17, 2009 at 5:26 PM

I may have found your issue; do you have the Life Framework CTP SDK (or SDK + Tools) installed? If not, you may obtain them from http://developer.mesh-ctp.com

-Andy

dbaechtel wrote Aug 17, 2009 at 10:24 PM

I installed the Live Framework SDK April 2009 CTP and I am still getting the exception.

ahopper wrote Aug 18, 2009 at 12:27 AM

Hello; I'm sorry to hear that you're still experiencing an exception! Can you also verify that you have .NET Framework 3.5 SP1 installed? The easiest way to check is to look under Add/Remove Programs for an entry labelled "Microsoft .NET Framework 3.5 SP1."

Thanks for your patience!
-Andy Hopper

dbaechtel wrote Aug 18, 2009 at 2:39 PM

Yes, I do have Microsoft .NET Framework 3.5 SP1 installed, but I am still getting the exception when Cloudbard starts up.

Is there any way to tell more precisely what is the cause of the exception so that I may find a fix for it?

ahopper wrote Aug 18, 2009 at 3:57 PM

There are a couple of ways we can get some additional information.

The first would be to attach the contents of the most recent crash report you see in the event log so that we can determine in what method this exception is being thrown. Also, if you haven't yet, please do go ahead and upload your crash report to microsoft when prompted; we're setting things up with Microsoft to capture these reports and want to be able to resolve as many issues as possible through WER.

We also have some ETW tracing embedded in the product. To capture an ETW trace, you must have a copy of tracelog.exe or on your machine (you can either download tracelog from http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=55e51b3b-6c26-4ca0-abf1-0e51d92b8298 or you can install the Windows DDK). Once you have a copy of tracelog available, you can capture a trace using the following process:
  1. Download the product's debugging symbols from the Downloads section and place them in Cloudboard's Program Files folder.
  2. Download the ETW trace provider ID (Cloudboard.ctl) file from the Downloads section and place it in a folder on your hard drive such as C:\Temp.
  3. Open a command prompt (use Administrative privileges if you normally run under a non-admin account)
  4. Start a trace session. Assuming that you have installed tracelog.exe using the above resource kit download and that you have a folder on your hard drive named C:\Temp, you may start it with the following command line:
    "C:\Program Files\Resource Kit\tracelog.exe" -start CBTrace -guid Cloudboard.ctl -flags 511 -level 10 -f Cloudboard.etl
  5. Reproduce the error.
  6. Stop the trace session using the following command line:
    "C:\Program Files\Resource Kit\tracelog.exe" -stop CBTrace
  7. Attach the Cloudboard.etl file to this thread.
Finally, if you're feeling adventurous after you've download the symbols you can attach a debugger such as CDB or Visual Studio to get a detailed stack trace. Hopefully we won't have to go to such extremes.

dbaechtel wrote Aug 18, 2009 at 5:23 PM

Errors reported in Event Viewer:

Event Type: Error
Event Source: .NET Runtime 2.0 Error Reporting
Event Category: None
Event ID: 5000
Date: 8/18/2009
Time: 1:17:08 PM
User: N/A
Computer: SCORPIO
Description:
EventType clr20r3, P1 cloudboard.exe, P2 1.0.27.0, P3 4a8958cd, P4 wintellect.livefx, P5 1.0.0.0, P6 4a843043, P7 e8, P8 44, P9 system.invalidoperationexception, P10 NIL.

For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.
Data:
0000: 63 00 6c 00 72 00 32 00 c.l.r.2.
0008: 30 00 72 00 33 00 2c 00 0.r.3.,.
0010: 20 00 63 00 6c 00 6f 00 .c.l.o.
0018: 75 00 64 00 62 00 6f 00 u.d.b.o.
0020: 61 00 72 00 64 00 2e 00 a.r.d...
0028: 65 00 78 00 65 00 2c 00 e.x.e.,.
0030: 20 00 31 00 2e 00 30 00 .1...0.
0038: 2e 00 32 00 37 00 2e 00 ..2.7...
0040: 30 00 2c 00 20 00 34 00 0.,. .4.
0048: 61 00 38 00 39 00 35 00 a.8.9.5.
0050: 38 00 63 00 64 00 2c 00 8.c.d.,.
0058: 20 00 77 00 69 00 6e 00 .w.i.n.
0060: 74 00 65 00 6c 00 6c 00 t.e.l.l.
0068: 65 00 63 00 74 00 2e 00 e.c.t...
0070: 6c 00 69 00 76 00 65 00 l.i.v.e.
0078: 66 00 78 00 2c 00 20 00 f.x.,. .
0080: 31 00 2e 00 30 00 2e 00 1...0...
0088: 30 00 2e 00 30 00 2c 00 0...0.,.
0090: 20 00 34 00 61 00 38 00 .4.a.8.
0098: 34 00 33 00 30 00 34 00 4.3.0.4.
00a0: 33 00 2c 00 20 00 65 00 3.,. .e.
00a8: 38 00 2c 00 20 00 34 00 8.,. .4.
00b0: 34 00 2c 00 20 00 73 00 4.,. .s.
00b8: 79 00 73 00 74 00 65 00 y.s.t.e.
00c0: 6d 00 2e 00 69 00 6e 00 m...i.n.
00c8: 76 00 61 00 6c 00 69 00 v.a.l.i.
00d0: 64 00 6f 00 70 00 65 00 d.o.p.e.
00d8: 72 00 61 00 74 00 69 00 r.a.t.i.
00e0: 6f 00 6e 00 65 00 78 00 o.n.e.x.
00e8: 63 00 65 00 70 00 74 00 c.e.p.t.
00f0: 69 00 6f 00 6e 00 20 00 i.o.n. .
00f8: 4e 00 49 00 4c 00 0d 00 N.I.L...
0100: 0a 00 ..

Event Type: Information
Event Source: .NET Runtime 2.0 Error Reporting
Event Category: None
Event ID: 5001
Date: 8/18/2009
Time: 1:17:22 PM
User: N/A
Computer: SCORPIO
Description:
Bucket 690525491, bucket table 5, EventType clr20r3, P1 cloudboard.exe, P2 1.0.27.0, P3 4a8958cd, P4 wintellect.livefx, P5 1.0.0.0, P6 4a843043, P7 e8, P8 44, P9 system.invalidoperationexception, P10 NIL.

For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.
Data:
0000: 42 00 75 00 63 00 6b 00 B.u.c.k.
0008: 65 00 74 00 3a 00 20 00 e.t.:. .
0010: 36 00 39 00 30 00 35 00 6.9.0.5.
0018: 32 00 35 00 34 00 39 00 2.5.4.9.
0020: 31 00 0d 00 0a 00 42 00 1.....B.
0028: 75 00 63 00 6b 00 65 00 u.c.k.e.
0030: 74 00 54 00 61 00 62 00 t.T.a.b.
0038: 6c 00 65 00 20 00 35 00 l.e. .5.
0040: 0d 00 0a 00 ....

dbaechtel wrote Aug 18, 2009 at 5:29 PM

When I open Cloudboard.exe with Depends.exe, it says the IEShims.dll and WER.dll can not be found on the system.

Where can I get these DLLs ?

ahopper wrote Aug 18, 2009 at 5:56 PM

Perfect! Many thanks for the information. The error that is being thrown indicates that something is still not set up with the Live Framework. Have you signed into the Live Framework through the notification icon and ensured that your local computer has joined your mesh?

dbaechtel wrote Aug 18, 2009 at 6:03 PM

Even though I have signed into Live Mesh and I have the Live Desktop displayed, when I start up Cloudboard I am still getting the same exception.

Live Mesh is properly installed and working.

Where can I find the WER.dll that depends is saying is missing?

ahopper wrote Aug 18, 2009 at 6:39 PM

WER.dll is a Windows Error Reporting library and is part of the Windows platform; we don't link against it or include it in our setup. Please bear in mind that Depends.exe often shows libraries that are listed as dependencies but are not necessary for an application to execute.

Can you verify that you have a registry key at HKEY_CURRENT_USER\Software\Microsoft\Live Mesh\Moe? It should contain a value named SessionKey.

dbaechtel wrote Aug 18, 2009 at 6:47 PM

I have a key at key at HKEY_CURRENT_USER\Software\Microsoft\Live Mesh,
but I do not have a key at HKEY_CURRENT_USER\Software\Microsoft\Live Mesh\Moe.

ahopper wrote Aug 18, 2009 at 9:53 PM

OK, I think we may be homing in, here; if you look in Add/Remove Programs, do you see an entry for Live Framework Client, or Live Mesh? The former is the ARP entry for the CTP, while the latter is the consumer version.

Again, thanks for being so patient while we determine the issue.

dbaechtel wrote Aug 20, 2009 at 6:55 PM

In the Add/Remove Programs, I have entries for:
Live Framework SDK CTP April 2009
Live Framework Tools for Visual Studio 1.0 CTP
and Live Mesh version 0.9.4014.7.

If I need it, where can I get the Live Framework Client install?

Cloudboard is still getting the same exception on startup.

dbaechtel wrote Aug 20, 2009 at 7:51 PM

OK. Now I also have Live Framework Client ver 0.9.3913.7 installed.
The Client is started and I am properly logged in.

But still when I startup Cloudboard I am getting the same exception.

What else could be wrong that I can check?

dbaechtel wrote Aug 20, 2009 at 8:03 PM

I installed Tracelog, the Symbols and downloaded Cloudboard.ctl as instructed but when I go to run the command I get:
Microsoft Windows XP [Version 5.1.2600]

C:\Documents and Settings\Don>"C:\Program Files\Resource Kit\tracelog.exe" -star
t CBTrace -guid Cloudboard.ctl -flags 511 -level 10 -f Cloudboard.etl
Getting guids from C:\Documents and Settings\Don\Cloudboard.ctl
Error: C:\Documents and Settings\Don\Cloudboard.ctl is invalid

C:\Documents and Settings\Don>

What is wrong and how do I run the trace?

ahopper wrote Aug 20, 2009 at 8:04 PM

OK, I think this is our culprit. There are instructions for installing the Live Framework Client and the Live Mesh client so that they can run side by side here:
http://social.msdn.microsoft.com/Forums/en-US/liveframework/thread/2fa9d3f1-029e-44af-9568-1cea81ca78a9/

Hopefully this will resolve your issue. Please let us know if it does so that I can add these details to the installation instructions.

Thanks!
-Andy Hopper

dbaechtel wrote Aug 20, 2009 at 8:09 PM

OK, I found the proper place to put the CTL file and ran the trace. The ETL file is attached.

wrote Aug 20, 2009 at 8:09 PM

ahopper wrote Aug 20, 2009 at 8:56 PM

Unfortunately, the log doesn't tell me much more than the Watson entry did. Can you verify that the registry key I mentioned is now present?

dbaechtel wrote Aug 20, 2009 at 9:42 PM

Yes, I do have a registry key at HKEY_CURRENT_USER\Software\Microsoft\Live Mesh\MOE.

ahopper wrote Aug 20, 2009 at 9:55 PM

OK, well, that's definitely a step in the right direction. Can you verify that you have non-null/empty values for the following:
SessionKey - a String value under HKCU\Software\Microsoft\Live Mesh\Moe
Port - a DWORD value also under HKCU\Software\Microsoft\Live Mesh\Moe

dbaechtel wrote Aug 20, 2009 at 10:02 PM

Yes, looks like good values in both keys under MOE.

ahopper wrote Aug 20, 2009 at 10:05 PM

Can you paste the most recent Error info from the event log? With the information you just provided this has to be a different issue than before.

dbaechtel wrote Aug 20, 2009 at 10:15 PM

EventType : clr20r3 P1 : cloudboard.exe P2 : 1.0.27.0 P3 : 4a8958cd
P4 : system.servicemodel.web P5 : 3.5.0.0 P6 : 488f1247 P7 : 260
P8 : 44 P9 : vzevnfupilsvc31z3h5gto45urxfkid3

dbaechtel wrote Aug 20, 2009 at 10:17 PM

Event Type: Error
Event Source: .NET Runtime 2.0 Error Reporting
Event Category: None
Event ID: 5000
Date: 8/20/2009
Time: 6:14:36 PM
User: N/A
Computer: SCORPIO
Description:
EventType clr20r3, P1 cloudboard.exe, P2 1.0.27.0, P3 4a8958cd, P4 system.servicemodel.web, P5 3.5.0.0, P6 488f1247, P7 260, P8 44, P9 vzevnfupilsvc31z3h5gto45urxfkid3, P10 NIL.

For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.
Data:
0000: 63 00 6c 00 72 00 32 00 c.l.r.2.
0008: 30 00 72 00 33 00 2c 00 0.r.3.,.
0010: 20 00 63 00 6c 00 6f 00 .c.l.o.
0018: 75 00 64 00 62 00 6f 00 u.d.b.o.
0020: 61 00 72 00 64 00 2e 00 a.r.d...
0028: 65 00 78 00 65 00 2c 00 e.x.e.,.
0030: 20 00 31 00 2e 00 30 00 .1...0.
0038: 2e 00 32 00 37 00 2e 00 ..2.7...
0040: 30 00 2c 00 20 00 34 00 0.,. .4.
0048: 61 00 38 00 39 00 35 00 a.8.9.5.
0050: 38 00 63 00 64 00 2c 00 8.c.d.,.
0058: 20 00 73 00 79 00 73 00 .s.y.s.
0060: 74 00 65 00 6d 00 2e 00 t.e.m...
0068: 73 00 65 00 72 00 76 00 s.e.r.v.
0070: 69 00 63 00 65 00 6d 00 i.c.e.m.
0078: 6f 00 64 00 65 00 6c 00 o.d.e.l.
0080: 2e 00 77 00 65 00 62 00 ..w.e.b.
0088: 2c 00 20 00 33 00 2e 00 ,. .3...
0090: 35 00 2e 00 30 00 2e 00 5...0...
0098: 30 00 2c 00 20 00 34 00 0.,. .4.
00a0: 38 00 38 00 66 00 31 00 8.8.f.1.
00a8: 32 00 34 00 37 00 2c 00 2.4.7.,.
00b0: 20 00 32 00 36 00 30 00 .2.6.0.
00b8: 2c 00 20 00 34 00 34 00 ,. .4.4.
00c0: 2c 00 20 00 76 00 7a 00 ,. .v.z.
00c8: 65 00 76 00 6e 00 66 00 e.v.n.f.
00d0: 75 00 70 00 69 00 6c 00 u.p.i.l.
00d8: 73 00 76 00 63 00 33 00 s.v.c.3.
00e0: 31 00 7a 00 33 00 68 00 1.z.3.h.
00e8: 35 00 67 00 74 00 6f 00 5.g.t.o.
00f0: 34 00 35 00 75 00 72 00 4.5.u.r.
00f8: 78 00 66 00 6b 00 69 00 x.f.k.i.
0100: 64 00 33 00 20 00 4e 00 d.3. .N.
0108: 49 00 4c 00 0d 00 0a 00 I.L.....

dbaechtel wrote Aug 20, 2009 at 10:17 PM

Event Type: Information
Event Source: .NET Runtime 2.0 Error Reporting
Event Category: None
Event ID: 5001
Date: 8/20/2009
Time: 6:16:19 PM
User: N/A
Computer: SCORPIO
Description:
Bucket 694785351, bucket table 5, EventType clr20r3, P1 cloudboard.exe, P2 1.0.27.0, P3 4a8958cd, P4 system.servicemodel.web, P5 3.5.0.0, P6 488f1247, P7 260, P8 44, P9 vzevnfupilsvc31z3h5gto45urxfkid3, P10 NIL.

For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.
Data:
0000: 42 00 75 00 63 00 6b 00 B.u.c.k.
0008: 65 00 74 00 3a 00 20 00 e.t.:. .
0010: 36 00 39 00 34 00 37 00 6.9.4.7.
0018: 38 00 35 00 33 00 35 00 8.5.3.5.
0020: 31 00 0d 00 0a 00 42 00 1.....B.
0028: 75 00 63 00 6b 00 65 00 u.c.k.e.
0030: 74 00 54 00 61 00 62 00 t.T.a.b.
0038: 6c 00 65 00 20 00 35 00 l.e. .5.
0040: 0d 00 0a 00 ....

dbaechtel wrote Aug 20, 2009 at 10:30 PM

From Microsoft:
"Generally speaking, clr20r3 is just a event message showing that there is an unhandled exception in your application. This is the application's developer's responsibility to deal with this exception. CLR logged the exception in order to inform you.
To deal with this issue, you have to check your source code and handle the exception. As far as I've known, this is the only way. "

Can you add some exception handlers to catch exceptions at the highest levels of your code so that the exception is not unhandled? This is just good practice anyway.

Then if you pop up a dialog in you application you could display some more detail about the exception and the source. This would provide more details.

The application crashes too quickly for me to attach VS2008 to the process to catch anything.

I am not sure if we can cause the application to trigger a JIT debugger.

dbaechtel wrote Aug 20, 2009 at 10:41 PM

Exception message from CLR Debugger:

An unhandled exception of type 'System.Runtime.Serialization.SerializationException' occurred in Cloudboard.exe

Additional information: Expecting element 'root' from namespace ''.. Encountered 'None' with name '', namespace ''.

dbaechtel wrote Aug 20, 2009 at 10:48 PM

Exception message from VS2008 JIT debugger:

System.Runtime.Serialization.SerializationException was unhandled
Message="Expecting element 'root' from namespace ''.. Encountered 'None' with name '', namespace ''. "
Source="System.ServiceModel.Web"
StackTrace:
   at System.Runtime.Serialization.Json.DataContractJsonSerializer.InternalReadObject(XmlReaderDelegator xmlReader, Boolean verifyObjectName)
   at System.Runtime.Serialization.XmlObjectSerializer.ReadObjectHandleExceptions(XmlReaderDelegator reader, Boolean verifyObjectName)
   at System.Runtime.Serialization.Json.DataContractJsonSerializer.ReadObject(XmlDictionaryReader reader)
   at System.Runtime.Serialization.Json.DataContractJsonSerializer.ReadObject(Stream stream)
   at Microsoft.LiveFX.ResourceModel.ResourceCollection.LoadFromJson(Stream inputStream, Type resourceCollectionType, IEnumerable`1 knownTypes)
   at Microsoft.LiveFX.ResourceModel.ResourceCollection`1.LoadFromJson(Stream inputStream, IEnumerable`1 knownTypes)
   at Microsoft.LiveFX.ResourceModel.ResourceCollection`1.LoadFromJson(Stream inputStream)
   at Wintellect.LiveFx.LiveFxClient.EndReadCollection[TResource](IAsyncResult result) in C:\Projects\LiveClipboard\trunk\Wintellect.LiveFx\LiveFxClient.cs:line 147
   at Wintellect.LiveFx.LiveFxExtensions.EndReadCollection[TResource](IAsyncResult result) in C:\Projects\LiveClipboard\trunk\Wintellect.LiveFx\LiveFxExtensions.cs:line 79
   at Wintellect.LiveFx.LiveFxExtensions.ReadMeshObjects(MeshResource resource, LiveFxClient liveFx) in C:\Projects\LiveClipboard\trunk\Wintellect.LiveFx\LiveFxExtensions.cs:line 334
   at Wintellect.LiveFx.Cloudboard.Configuration.DiscoverClipboards() in c:\Projects\Cloudboard\trunk\CloudBoard\Model\Configuration.cs:line 288
   at Wintellect.LiveFx.Cloudboard.Configuration.Load() in c:\Projects\Cloudboard\trunk\CloudBoard\Model\Configuration.cs:line 206
   at Wintellect.LiveFx.Cloudboard.HotkeyListener.GoOnline() in c:\Projects\Cloudboard\trunk\CloudBoard\MessagePump.cs:line 161
   at Wintellect.LiveFx.Cloudboard.HotkeyListener..ctor(Configuration configuration) in c:\Projects\Cloudboard\trunk\CloudBoard\MessagePump.cs:line 58
   at Wintellect.LiveFx.Cloudboard.App.OnStartup(StartupEventArgs e) in c:\Projects\Cloudboard\trunk\CloudBoard\App.xaml.cs:line 27
   at System.Windows.Application.<.ctor>b__0(Object unused)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Boolean isSingleParameter)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler)
   at System.Windows.Threading.Dispatcher.WrappedInvoke(Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler)
   at System.Windows.Threading.DispatcherOperation.InvokeImpl()
   at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object state)
   at System.Threading.ExecutionContext.runTryCode(Object userData)
   at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Windows.Threading.DispatcherOperation.Invoke()
   at System.Windows.Threading.Dispatcher.ProcessQueue()
   at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Boolean isSingleParameter)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler)
   at System.Windows.Threading.Dispatcher.WrappedInvoke(Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler)
   at System.Windows.Threading.Dispatcher.InvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Boolean isSingleParameter)
   at System.Windows.Threading.Dispatcher.Invoke(DispatcherPriority priority, Delegate method, Object arg)
   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
   at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
   at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
   at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
   at System.Windows.Threading.Dispatcher.Run()
   at System.Windows.Application.RunDispatcher(Object ignore)
   at System.Windows.Application.RunInternal(Window window)
   at System.Windows.Application.Run(Window window)
   at System.Windows.Application.Run()
   at Wintellect.LiveFx.Cloudboard.App.Main() in c:\Projects\Cloudboard\trunk\CloudBoard\obj\Production\App.g.cs:line 47
InnerException:

dbaechtel wrote Aug 21, 2009 at 12:00 AM

I may be wrong, but from the details in the Stack Trace, it looks like that the application was trying to load some Configuration information (maybe something about clipboards) from LiveFX using a Json formated Resource Script. The application was expecting the Resource script to have (or start with) a node called 'root'. But instead the application got back a script with a node called 'None' instead, maybe because there is no such resource in my mesh. Since the script returned did not fit the provided DataContract format, the Json serializer didn't know how to handle it and threw a SerializationException. It appears that the application code does not expect such a response with 'None', and without any exception handlers to catch it, the exception ripples all the way out until .Net reports it as a clr20r3 unhandled exception.

ahopper wrote Aug 21, 2009 at 12:01 AM

Yikes. I'm afraid this one is an exception being thrown inside the Live Framework code, and I'm not sure what conditions would cause it. I'll post this one to the Live Framework forum to see if we can get any traction there.

dbaechtel wrote Aug 21, 2009 at 12:21 AM

It seems like a SerializationException handler located somewhere after C:\Projects\LiveClipboard\trunk\Wintellect.LiveFx\LiveFxClient.cs:line 147
would be advisable. As well as a generic exception handler located near at Wintellect.LiveFx.Cloudboard.App.Main() in c:\Projects\Cloudboard\trunk\CloudBoard\obj\Production\App.g.cs:line 47
to catch any other uncaught exceptions to report any details.

The significant question if why, if the application was expecting a resource script with a node called 'root', did it recieve a script with a node called 'None' and what does that mean ? The answer to that question will indicate if the exception is fatal or can it be safely ignored.

ahopper wrote Aug 21, 2009 at 1:39 AM

Yes, I definitely agree that additional logging would help in the diagnosis.
The significant question if why, if the application was expecting a resource script with a node called 'root',
did it recieve a script with a node called 'None' and what does that mean ? The answer to that question
will indicate if the exception is fatal or can it be safely ignored.
Actually, that is a Live Framework detail, not an expectation by our application logic. This particular error is a fatal exception as far as we are concerned. Unless the LiveFx team can provide us with a reason for this exception (or at least a way to work around it), I'm afraid there's not much we can do.

dbaechtel wrote Aug 21, 2009 at 11:53 AM

I am Just Guessing here, but here is what I imagine is happening and what you can do about it. I imagine that you are asking LiveFx to give you a list of some type of Resource (Clipboards?) in my Mesh. You expect a data structure to be returned that lists all of the Clipboards or a Clipboard with a data structure in Json that starts with the node 'root' accoding to the DataContract agreed upon between you and LiveFX. But it appears that I don't have any of the resources of the type (Clipboard?) that you asked for. So LiveFx returned a structure staring with the node 'None' instead to signal that none of the type you asked for were found in my Mesh. The Json Serializer wasn't designed to handle that case, so it returns a SerializationException to indicate to your application that it received something unexpected that it could not deal with. If you add a SerializationException handler located somewhere after C:\Projects\LiveClipboard\trunk\Wintellect.LiveFx\LiveFxClient.cs:line 147,
in the exception handler you can say "Gee, something went wrong, let's check to see if the stream returned from LiveFx contains the word 'None'" and if so, just return a data structure to the application that indicates that no resources of that type were found, mark the exception as 'handled' and keep going. Another simplier way is if you get a SerializationException, just assume that their are no resourcses of that type, return a data structure to the application that indicates that no resources of that type were found, mark the exception as 'handled' and keep going. Your application needs to be able to handle the cases when the resources that you are expecting do not exist (yet). If your application really needs them to function, then maybe it needs to create them itself. Or ask the User to create them.

It's OK to get an exception in your application. It just means that something did not go as expected. It is OK for your application to ignore exceptions if it assumes it is safe and proper to do so. It is up to your application to determine the cause of the exception and the appropriate action to take. Sometimes the appropriate action to take is to handle it as a fatal and terminating error, sometimes it is not.

Don't give up ! Over time you can build a very robust application that takes the lack of some resources into account and provides an appropriate workaround and keeps working.

ahopper wrote Aug 21, 2009 at 5:18 PM

Thank you for your insightful comments.

However, it appears that the Live Framework team has just resolved this issue for us.
http://dev.live.com/blogs/devlive/archive/2009/08/21/500.aspx

dbaechtel wrote Aug 21, 2009 at 9:05 PM

GREAT !

You do all that Good Work and Microsoft just pulls thr plug.

Oh, well.

wrote Jan 21, 2013 at 11:16 PM