Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.5k views
in Technique[技术] by (71.8m points)

.net - System.Transactions.Diagnostics.DiagnosticTrace throwing TypeInitializationException

Seems related to Strange exception coming out of OdbcConnection.Open() but I'm not sure.

I recently switched over to Win8 and hadn't run this app since. I'm using VS2012, but the projects have not been upgraded. The dump of the exception looks like this:

Unhandled Exception: System.TypeInitializationException: 
 The type initializer for 'System.Transactions.Diagnostics.DiagnosticTrace' threw an exception. ---> 
 System.Configuration.ConfigurationErrorsException: Configuration system failed to initialize ---> 
 System.TypeInitializationException: The type initializer for 'System.Uri' threw an exception. ---> 
 System.TypeInitializationException: The type initializer for 'System.UriParser' threw an exception. ---> 
 System.TypeInitializationException: The type initializer for 'System.Runtime.Versioning.BinaryCompatibility' threw an exception. ---> 
 System.ArgumentException: String cannot be of zero length.
Parameter name: frameworkName
   at System.Runtime.Versioning.BinaryCompatibility.ParseFrameworkName(String frameworkName, String& identifier, Int32& version, String& profile)
   at System.Runtime.Versioning.BinaryCompatibility.ParseTargetFrameworkMonikerIntoEnum(String targetFrameworkMoniker, TargetFrameworkId& targetFramework, Int32& targetFrameworkVersion)
   at System.Runtime.Versioning.BinaryCompatibility.ReadTargetFrameworkId()
   at System.Runtime.Versioning.BinaryCompatibility.get_AppWasBuiltForFramework()
   at System.Runtime.Versioning.BinaryCompatibility..cctor()
   --- End of inner exception stack trace ---
   at System.Runtime.Versioning.BinaryCompatibility.get_TargetsAtLeast_Desktop_V4_5()
   at System.UriParser..cctor()
   --- End of inner exception stack trace ---
   at System.Uri..cctor()
   --- End of inner exception stack trace ---
   at System.Configuration.ClientConfigurationSystem..ctor()
   at System.Configuration.ConfigurationManager.EnsureConfigurationSystem()
   --- End of inner exception stack trace ---
   at System.Configuration.ConfigurationManager.PrepareConfigSystem()
   at System.Configuration.ConfigurationManager.GetSection(String sectionName)
   at System.Configuration.PrivilegedConfigurationManager.GetSection(String sectionName)
   at System.Diagnostics.DiagnosticsConfiguration.GetConfigSection()
   at System.Diagnostics.DiagnosticsConfiguration.Initialize()
   at System.Diagnostics.DiagnosticsConfiguration.get_Sources()
   at System.Diagnostics.TraceSource.Initialize()
   at System.Diagnostics.TraceSource.get_Switch()
   at System.Transactions.Diagnostics.DiagnosticTrace..cctor()
   --- End of inner exception stack trace ---
   at System.Transactions.Transaction.get_Current()
   at SD.LLBLGen.Pro.ORMSupportClasses.DataAccessAdapterBase.InitClass(IComPlusAdapterContext comPlusContextHost, IPersistenceInfoProvider persistenceInfoProvider)
   at ZAA.FarmInterface.bw_RunWorkerCompleted(Object sender, RunWorkerCompletedEventArgs e) in d:eddynetprojectszaazaacmdlinefarminterface.cpp:line 482
   at System.ComponentModel.BackgroundWorker.OnRunWorkerCompleted(RunWorkerCompletedEventArgs e)
   at System.ComponentModel.BackgroundWorker.AsyncOperationCompleted(Object arg)
   at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
   at System.Threading.ThreadPoolWorkQueue.Dispatch()
   at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()

App.config looks like so:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0"/>
  </startup>
  <runtime>

    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">

      <dependentAssembly> <!--For LLBLGen -->
        <assemblyIdentity name="Npgsql" culture="neutral" publicKeyToken="5d8b90d52f46fda7"/>
        <bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.11.0"/>

      </dependentAssembly>
    </assemblyBinding>

  </runtime>
</configuration>

I've tried rebuilding, to no avail.

Tried adding an empty section to app.config.


Looking at the manifest off the .exe in ILDASM, I found this, which looks odd:

.assembly zaacmdline
{
  .custom instance void [mscorlib]System.Runtime.Versioning.TargetFrameworkAttribute::.ctor(string) = ( 01 00 00 01 00 54 0E 14 46 72 61 6D 65 77 6F 72   // .....T..Framewor
                                                                                                    6B 44 69 73 70 6C 61 79 4E 61 6D 65 10 2E 4E 45   // kDisplayName..NE
                                                                                                    54 20 46 72 61 6D 65 77 6F 72 6B 20 34 )          // T Framework 4
  .custom instance void [mscorlib]System.Security.SecurityRulesAttribute::.ctor(valuetype [mscorlib]System.Security.SecurityRuleSet) = ( 01 00 01 00 00 ) 
  .permissionset reqmin
         = {[mscorlib]System.Security.Permissions.SecurityPermissionAttribute = {property bool 'SkipVerification' = bool(true)}}
  .hash algorithm 0x00008004
  .ver 0:0:0:0
}

the TargetFrameworkAttribute is certainly fubar, compared to the working machine. How do I fix it?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

The comment about seeing the link below should fix the problem. App's .exe file missing .NET TargetFramework, but only on clean builds

Basically: Delete C:UsersYOURNAMEAppDataLocalTemp.NETFramework,Version=v4.0.AssemblyAttributes.cpp


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...