.Net - Interopassemblys unter 15 Sekunden zu laden, wenn in Abhängigkeit referenzierten

StackOverflow https://stackoverflow.com/questions/279495

  •  07-07-2019
  •  | 
  •  

Frage

Dies ist eine C # Konsolenanwendung. Ich habe eine Funktion, die so etwas wie dies funktioniert:

static void foo()
{
       Application powerpointApp;
       Presentation presentation = null;

       powerpointApp = new Microsoft.Office.Interop.PowerPoint.ApplicationClass();
}

Das ist alles, es tut. Wenn es aufgerufen wird, gibt es eine 15 Sekunden Verzögerung, bevor die Funktion getroffen wird. Ich habe so etwas wie folgt aus:

static void MyAssemblyLoadEventHandler(object sender, AssemblyLoadEventArgs args)
{
       Console.WriteLine(DateTime.Now.ToString() + " ASSEMBLY LOADED: " + args.LoadedAssembly.FullName);
       Console.WriteLine();
}

Das wird mir zu sagen, dass meine gefeuert Interopassemblys haben etwa 10 Millisekunden, bevor meine foo Funktion getroffen wird geladen. Was kann ich dagegen tun? Das Programm muss diese Funktion aufzurufen (und schließlich etwas anderes tun) einmal und dann beenden, damit ich für diese Baugruppen müssen zwischengespeichert oder etwas werden. Ideen?

War es hilfreich?

Lösung

Es könnte die Zertifikatssperrliste sein - das Timeout auf diese beträgt 15 Sekunden. Gibt es etwas, im Ereignisprotokoll? Können Sie überprüfen, ob alle Netzwerkverbindungen während des Time-out geschehen?

gebloggt ich einige Details über Zertifikatsperrverzögerungs vor einer Weile. Folgen Sie dem Link, ich werde nicht schneiden und fügen Sie hier.

Andere Tipps

15 Sekunden klingen wie ein Timeout für mich. Unterzeichnen Sie Ihre Baugruppen? Wir hatten ein Problem, bei dem der Rahmen will die Zertifikatssperrliste überprüfen, wenn das Laden, aber nicht nach 15 Sekunden.

HTH

Tim

<runtime>

   <generatePublisherEvidence enabled="false"/>

</runtime>

Sehen Sie hier für weitere Details

http://msdn.microsoft.com/en-us/library /bb629393.aspx

„Wir empfehlen, dass die Dienstleistungen des Elements verwenden Startleistung zu verbessern. Mit diesem Element kann auch vermeiden Verzögerungen helfen, die eine Auszeit und die Aufhebung des Dienststart führen kann.“

nur raten, aber es ist wahrscheinlich die Zeit für Powerpoint, nachdem die Interopassemblys geladen hat zu starten.

Wenn Methode foo () nicht auf Antrag Start aufgerufen und Sie haben einige andere Aufgaben zu tun, bevor sie aufgerufen wird, können Sie einen separaten Thread am Anfang beginnen, die Baugruppen zu laden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top