![]() |
![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
| Welcome to Windows Vista Forums. Our forum is dedicated to helping you find solutions with any problems, errors or issues you are experiencing with Windows Vista. The Vista forum also covers news and updates and has an extensive Windows Vista tutorial section that covers a wide range of tips and tricks. |
| | |||||||
| |
| 02-10-2010 | #1 (permalink) |
| | "0 bytes loaded from System" Hello, I work for a company that sells .NET software and have recently been tasked with handling support issues to do with our update system, which I wrote. Since the updater is the first thing that runs when the desktop icon is clicked, I also get unrelated issues, and one that has been coming up repeatedly is the following exception while trying to instantiate an XmlSerializer: System.TypeInitializationException: The type initializer for 'IQ.Core.UpdateFoundation.Dispatcher.DispatchRequest' threw an exception. ---> System.BadImageFormatException: Could not load file or assembly '0 bytes loaded from System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. An attempt was made to load a program with an incorrect format. File name: '0 bytes loaded from System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' ---> System.BadImageFormatException: Bad IL format. at System.Reflection.Assembly.nLoadImage(Byte[] rawAssembly, Byte[] rawSymbolStore, Evidence evidence, StackCrawlMark& stackMark, Boolean fIntrospection) at System.Reflection.Assembly.Load(Byte[] rawAssembly, Byte[] rawSymbolStore, Evidence securityEvidence) at Microsoft.CSharp.CSharpCodeGenerator.FromFileBatch(CompilerParameters options, String[] fileNames) at Microsoft.CSharp.CSharpCodeGenerator.FromSourceBatch(CompilerParameters options, String[] sources) at Microsoft.CSharp.CSharpCodeGenerator.System.CodeDom.Compiler.ICodeCompiler.CompileAssemblyFromSourceBatch(CompilerParameters options, String[] sources) at System.CodeDom.Compiler.CodeDomProvider.CompileAssemblyFromSource(CompilerParameters options, String[] sources) at System.Xml.Serialization.Compiler.Compile(Assembly parent, String ns, XmlSerializerCompilerParameters xmlParameters, Evidence evidence) at System.Xml.Serialization.TempAssembly.GenerateAssembly(XmlMapping[] xmlMappings, Type[] types, String defaultNamespace, Evidence evidence, XmlSerializerCompilerParameters parameters, Assembly assembly, Hashtable assemblies) at System.Xml.Serialization.TempAssembly..ctor(XmlMapping[] xmlMappings, Type[] types, String defaultNamespace, String location, Evidence evidence) at System.Xml.Serialization.XmlSerializer.GenerateTempAssembly(XmlMapping xmlMapping, Type type, String defaultNamespace, String location, Evidence evidence) at System.Xml.Serialization.XmlSerializer..ctor(Type type, XmlAttributeOverrides overrides, Type[] extraTypes, XmlRootAttribute root, String defaultNamespace, String location, Evidence evidence) at System.Xml.Serialization.XmlSerializer..ctor(Type type, Type[] extraTypes) at IQ.Core.UpdateFoundation.Dispatcher.DispatchRequest..cctor() In attempting to debug this issue, I wrote, on the client's machine, a tiny test application whose only statement was the creation of an XmlSerializer, and when I attempted to compile it using the C# compiler installed on the client machine as part of the .NET Framework, I found that CSC.EXE produces no output at all: C:\testxml>csc test.cs C:\testxml>csc /? C:\testxml>csc C:\testxml> I rooted around to try to find the cause, and one of the other things I tried was running WCF's ServiceModelReg utility, and that produced similar output, receiving an error from somewhere within the framework: C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation>ServiceModelReg.exe /i Microsoft(R) Windows Communication Foundation Installation Utility [Microsoft (R) Windows (R) Communication Foundation, Version 3.0.4506.4037] Copyright (c) Microsoft Corporation. All rights reserved. Error: Could not load file or assembly '0 bytes loaded from System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. An attempt was made to load a program with an incorrect format. C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation> I have tried uninstalling and reinstalling .NET, using both .NET's own uninstaller and the removal tool that Aaron Stebner put on his blog, but to no avail. The above symptoms persist with no change. Has anybody seen this before or know what the problem is? So far, we have only succeeded in solving the problem on a single client workstation, and the "solution" was a complete reinstallation of Windows. Thanks, Jonathan |
| My System Specs |
| 02-11-2010 | #2 (permalink) |
| | Re: "0 bytes loaded from System" On 2010-02-10 22:20, Jonathan Gilbert wrote: Quote: > I work for a company that sells .NET software and have recently been > tasked with handling support issues to do with our update system, > which I wrote. Since the updater is the first thing that runs when the > desktop icon is clicked, I also get unrelated issues, and one that has > been coming up repeatedly is the following exception while trying to > instantiate an XmlSerializer: > > System.TypeInitializationException: The type initializer for > 'IQ.Core.UpdateFoundation.Dispatcher.DispatchRequest' threw an > exception. ---> System.BadImageFormatException: Could not load file or > assembly '0 bytes loaded from System, Version=2.0.0.0, > Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its > dependencies. An attempt was made to load a program with an incorrect > format. have the same root cause (an invalid assembly generating a misleading error message). The trouble is figuring out which assembly. Try using procmon (http://technet.microsoft.com/en-us/s.../bb896645.aspx) to identify the failing assembly as it's being loaded. You can use peverify.exe to check if it's valid. It might be your own assembly, being corrupted as it's downloaded. However, if a complete reinstall of the .NET Framework doesn't help and it also affects .NET software other than your own, this suggests no single assembly is the problem. Reboot into safe mode and see if the problem still occurs. File-system filter drivers like the ones installed by antivirus programs can prevent successful file access. Process Monitor should be able to see this as well, though it may not be as obvious. -- J. |
| My System Specs |
| 02-11-2010 | #3 (permalink) |
| | Re: "0 bytes loaded from System" On Feb 11, 9:58*am, Jeroen Mostert <jmost...@newsgroup> wrote: Quote: > On 2010-02-10 22:20, Jonathan Gilbert wrote: > Quote: > > I work for a company that sells .NET software and have recently been > > tasked with handling support issues to do with our updatesystem, > > which I wrote. Since the updater is the first thing that runs when the > > desktop icon is clicked, I also get unrelated issues, and one that has > > been coming up repeatedly is the following exception while trying to > > instantiate an XmlSerializer: Quote: > >System.TypeInitializationException: The type initializer for > > 'IQ.Core.UpdateFoundation.Dispatcher.DispatchRequest' threw an > > exception. ---> *System.BadImageFormatException: Could not load file or > > assembly '0bytesloadedfromSystem, Version=2.0.0.0, > > Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its > > dependencies. An attempt was made to load a program with an incorrect > > format. > http://support.microsoft.com/kb/919825is not your scenario, but it might > have the same root cause (an invalid assembly generating a misleading error > message). The trouble is figuring out which assembly. Try using procmon > (http://technet.microsoft.com/en-us/s.../bb896645.aspx) to identify > the failing assembly as it's beingloaded. You can use peverify.exe to check > if it's valid. It might be your own assembly, being corrupted as it's > downloaded. > > However, if a complete reinstall of the .NET Framework doesn't help and it > also affects .NET software other than your own, this suggests no single > assembly is the problem. Reboot into safe mode and see if the problem still > occurs. File-systemfilter drivers like the ones installed by antivirus > programs can prevent successful file access. Process Monitor should be able > to see this as well, though it may not be as obvious. > > -- > J. in the original post, I wrote a simple test app: CodeDomProvider provider = CodeDomProvider.CreateProvider("C#"); CompilerResults results = provider.CompileAssemblyFromSource( new CompilerParameters() { GenerateExecutable = true, GenerateInMemory = false, IncludeDebugInformation = false, OutputAssembly = "Test", }, @"using System; class Test { static void Main() { Console.WriteLine(""It worked!""); } }"); This returns without errors, but as soon as I access the CompiledAssembly property of the CompilerResults object, I immediately get: System.IO.FileNotFoundException: Could not load file or assembly 'file:///C:\Tes tApp\Test' or one of its dependencies. The system cannot find the file specified .. File name: 'file:///C:\TestApp\Test' at System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection) at System.Reflection.Assembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection) at System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) at System.Reflection.Assembly.Load(AssemblyName assemblyRef, Evidence assemblySecurity) at System.CodeDom.Compiler.CompilerResults.get_CompiledAssembly() This brings things into clarity; the error is that CSC is not working, and the "0 bytes loaded from System", in which the filename is wrong, is merely a symptom of this. I will follow up if/when I discover why CSC isn't working. Thanks for your suggestions. Disabling anti-virus software and running in safe mode will be the first things I try next. Jonathan |
| My System Specs |
| 02-12-2010 | #4 (permalink) |
| | Re: "0 bytes loaded from System" On Feb 11, 11:44*am, Jonathan Gilbert <logic...@newsgroup> wrote: [..] Quote: > This brings things into clarity; the error is that CSC is not working, > and the "0 bytes loaded from System", in which the filename is wrong, > is merely a symptom of this. > > I will follow up if/when I discover why CSC isn't working. > > Thanks for your suggestions. Disabling anti-virus software and running > in safe mode will be the first things I try next. discovered that it had "Additional Guard" installed -- a fake anti- spyware program that is itself malware. It had added a program compatibility entry in the registry with the effect of preventing any program named CSC.EXE from running (along with ~700 others). After running Malwarebytes' Anti-Malware, which removed all of these, CSC.EXE began working again, and the related errors in calls into CodeDom (and XmlSerializer, which uses CodeDom) went away. The machine is once again working properly. Thanks for your help, Jonathan |
| My System Specs |
| Thread Tools | |
| |
| Similar topics to: "0 bytes loaded from System" | ||||
| Thread | Forum | |||
| "The resource loader cache doesn't have loaded MUI entry" | General Discussion | |||
| "Contacts can not be loaded" Windows mail error | Vista mail | |||
| Kaplan Software Doesn't Work - Receive "MCI Driver not loaded" err | Vista General | |||
| "Extensible Authentication Protocol" service gives "The system cannot find the file specified" error | Vista networking & sharing | |||
| Error: "Cannot convert "System.Object[]" to "System.Int32"." | PowerShell | |||