2013-10-30 3 views
6

Ich habe eine Anwendung, die seit einiger Zeit funktioniert hat. Ich habe versucht, es mit VS2013 auszuführen, und es hängt an einer Zeile, wo es versucht, ein DataCacheFactory-Objekt zu initialisieren. Der gleiche Code funktioniert gut mit VS2010 und VS2012.AppFabric DataCacheFactory() Initialisierung hängt in VS2013, funktioniert gut in VS2010 und VS2012

private static DataCacheFactory GetDataCacheFactory() 
    { 
     if (factory == null) 
     { 
      lock (lockObject) 
      { 
       if (factory == null) 
       { 
        factory = new DataCacheFactory(); //VS2013 hangs on this line 
       } 
      } 
     } 
     return factory; 
    } 

Es werden keine Fehler generiert. Der Code hängt nur an der Leitung factory = new DataCacheFactory().

Die AppFabric-DLLs sind aktuelle Versionen.

Ich begrüße alle Vorschläge zur Identifizierung, warum der Code in dieser Zeile hängt.

+0

könnten Sie bitte beschreiben Sie Ihre Umgebung. Ist es ein Remote-Cluster oder ein einzelner Host, der auf Ihrem Computer ausgeführt wird? – Cybermaxs

+0

Könnten Sie windbg an Ihre vshost & devenv-Prozesse anhängen und drucken, was ~ * e! Clrstack-Befehl ergibt (mit sex)? – Olivier

+0

Oder fügen Sie einfach einen anderen devenv an Ihren laufenden Prozess an und sehen Sie, welche Threads am Leben sind und was sie tun/hängen ... – Olivier

Antwort

0

Ich habe dieses Problem gelöst, aber ich weiß nicht, was es verursacht hat. Ich habe versucht, mit DebugDiag einen Dump zu machen und es zu analysieren. Die Analyse zeigte an, dass der Prozess darauf gewartet hat, dass etwas in einem Kompatibilitätsmodul in einem bestimmten Microsoft-Code abgeschlossen wird.

Ich bemerkte, dass zwei Kompatibilitätsdatenbanken mit IIS 8 installiert waren. Ich deinstallierte beide Elemente und versuchte, meine App erneut auszuführen. Dieses Mal hat die App die hängende Leitung erfolgreich ausgeführt.

Während dies das Problem auf dieser Maschine gelöst hat, weiß ich immer noch nicht, was das Problem verursacht. Ich habe einen Kollegen mit einer ähnlichen Konfiguration und er hat kein Problem damit, dass die App in der obigen Zeile hängt, selbst wenn die Kompatibilitätsdatenbanken installiert sind.

0

Da Sie Ihre App auf VS entwickeln, könnte dies eine. NET-Anwendung sein. überprüfen Sie bitte die gezielte .net Framework-Version von Projekteigenschaften, wenn Sie auf VS13 ausgeführt werden.

+0

Das gezielte .net-Framework ist 4.0. Es ist der gleiche Code, der in VS 2010 und 2012 ausgeführt wird, aber im Jahr 2013 hängt. – mcolegro

+0

führen Sie diese Operation in einem try Block aus und fangen Sie eine Ausnahme ab. versuchen Sie { Factory = neue DataCacheFactory(); } catch (// relevante Ausnahme) – autopilot

+0

Ich habe den gleichen Code in einem Versuch/Catch-Block versucht, aber das hat nichts ergeben, da es keine Ausnahme gab. Der Code hängt nur an dieser Zeile. – mcolegro

Verwandte Themen