2011-08-02 7 views
12

Mam rozwiązanie css vs2010, które działało dobrze wczoraj.SEHException był nieobsługiwany

Kiedy próbuję uruchomić instancję debugowania dzisiaj, ciągle otrzymuję komunikat o błędzie SEHException.

Ten błąd jest zgłaszany w metodzie uruchamiania formularza InitializeComponent.

Jakieś pomysły?

Oto StackTrace:

System.Runtime.InteropServices.SEHException was unhandled 
    Message=External component has thrown an exception. 
    Source=System.Drawing 
    ErrorCode=-2147467259 
    StackTrace: 
     at System.Drawing.SafeNativeMethods.Gdip.GdipCreateFontFromLogfontW(HandleRef hdc, Object lf, IntPtr& font) 
     at System.Drawing.Font.FromLogFont(Object lf, IntPtr hdc) 
     at System.Drawing.Font.FromHfont(IntPtr hfont) 
     at System.Drawing.SystemFonts.get_DefaultFont() 
     at System.Windows.Forms.Control.get_DefaultFont() 
     at System.Windows.Forms.Control.GetDefaultFontHandleWrapper() 
     at System.Windows.Forms.Control.get_FontHandle() 
     at System.Windows.Forms.ContainerControl.GetFontAutoScaleDimensions() 
     at System.Windows.Forms.ContainerControl.get_CurrentAutoScaleDimensions() 
     at System.Windows.Forms.ContainerControl.get_AutoScaleFactor() 
     at System.Windows.Forms.ContainerControl.PerformAutoScale(Boolean includedBounds, Boolean excludedBounds) 
     at System.Windows.Forms.ContainerControl.PerformNeededAutoScaleOnLayout() 
     at System.Windows.Forms.Form.OnLayout(LayoutEventArgs levent) 
     at System.Windows.Forms.Control.PerformLayout(LayoutEventArgs args) 
     at System.Windows.Forms.Control.System.Windows.Forms.Layout.IArrangedElement.PerformLayout(IArrangedElement affectedElement, String affectedProperty) 
     at System.Windows.Forms.ContainerControl.LayoutScalingNeeded() 
     at System.Windows.Forms.ContainerControl.set_AutoScaleMode(AutoScaleMode value) 
     at FirstWindow.Form1.InitializeComponent() in C:\Users\Ash\Documents\Visual Studio 2010\Projects\FrameworkClientV2 - No Security\FirstWindow\Form1.designer.cs:line 32 
     at FirstWindow.Form1..ctor() in C:\Users\Ash\Documents\Visual Studio 2010\Projects\FrameworkClientV2 - No Security\FirstWindow\Form1.cs:line 27 
     at FirstWindow.Program.Main() in C:\Users\Ash\Documents\Visual Studio 2010\Projects\FrameworkClientV2 - No Security\FirstWindow\Program.cs:line 18 
     at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args) 
     at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args) 
     at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() 
     at System.Threading.ThreadHelper.ThreadStart_Context(Object state) 
     at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx) 
     at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 
     at System.Threading.ThreadHelper.ThreadStart() 
    InnerException: 

na losowej pamiętać mój gf złamałam ekranie laptopa ostatniej nocy tak Im działa na monitorze zewnętrznym ... może to mieć coś wspólnego z tym?

Oto kod i błędne linia ..

private void InitializeComponent() 
{ 
    this.components = new System.ComponentModel.Container(); 
    ///////////////////The line below throws the exception 
    this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 
    /////////////////////////////// 
    this.Text = "Form1"; 
} 
+0

możliwy duplikat [Jak należy zdiagnozować błąd SEHException - Komponent zewnętrzny ma wyjątek] (http://stackoverflow.com/questions/1313853/how-should-you-diagnose-the-error-sehexception-external -component-has-throw-an) –

+5

Bardzo wątpię, że shenaniganie twojej lepszej połowy mają cokolwiek wspólnego z tym wyjątkiem :) –

+0

Warto było spróbować moo :) Ponieważ wygląda na to, że wyjątek ma coś wspólnego z funkcją automatycznego skalowania Zastanawiałem się, czy inne rozdzielczości monitorów mogą mieć z tym coś wspólnego. – user589195

Odpowiedz

11

To może być taka sama jak szeroko omawianym numerze, który rozpoczął występujących wczoraj. Zobacz

http://forums.asp.net/t/1704958.aspx/9/10?Re+SEHException+thrown+when+I+run+the+application

http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/0f78401b-77b2-4052-a26a-e98d2ec0afa9

Odinstaluj "Trusteer Rapport", jeśli masz go na swoim komputerze

+0

Ty, Sir, jesteś legendą :) – user589195

+3

Świetna diagnoza.Myślę, że pytania z odpowiedziami takimi jak ta są prawdziwymi klejnotami SO :) – porges

+5

Nie mogę naprawdę pochwalić się żadnym kredytem - po prostu śledziłem inne wątki w tej kwestii, ponieważ mój kolega cierpiał na tę kwestię. Pokazuje tylko, jak czułe jest środowisko Windows, gdy niezwiązane z nim oprogramowanie może wpływać na siebie nawzajem w nieoczekiwany sposób. – zeroid

0

Ten problem występuje, gdy można załadować funkcje niezarządzalny (od DLL) w głównym wątku. Rozwiązałem ten problem, ładując te niezarządzane funkcje w inny wątek niż główny wątek, można na przykład użyć BackgroundWorker.

0

Natknąłem się na to, ponieważ nagle doświadczyłem tego samego problemu. To lata po OP i używam VS2015. Moje rozwiązanie sprawdziło się wczoraj w pracy z moim laptopem podłączonym do zewnętrznego monitora. Dzisiaj pracuję w domu i nie ma dodatkowego monitora. Nie sądziłbym, że jest to istotne, z wyjątkiem komentarza OP dotyczącego zmiany ustawień ekranu.