Ich hatte bei einem Kunden das Problem, dass eine Windows .Net Applikation bei jeden Start ca. 30 Sekunden benötigt hat, bis die Applikation geladen war.
Eine ebenso dort installierte ASP.Net Applikation benötigte ca. 4 Minuten (!), bis dass der Browser die erste Seite geöffnet hatte (danach gings normal weiter, solange die Web-App nicht gestoppt wurde…).

Man konnte mit dem Prozess-Explorer förmlich sehen, wie eine dll nach der anderen mit grossen Zeitabstand in den Speicher geladen wurde… Irgend etwas schien die Ladezeit stark zu verzögern (Virenscanner?).

Erst nach langer Zeit und Suche bin ich im Google endlich fündig geworden – folgenden Eintrag muss man in einer Config-Datei (app od. web.config) machen (rot hervorgehoben):

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <runtime>
     <generatePublisherEvidence enabled="false"/>
  </runtime>
</configuration>

Mit dieser Änderung geht das Starten plötzlich wieder im “normalen” Tempo…

Hier die Begründung von Microsoft (http://msdn.microsoft.com/de-de/library/bb629393.aspx):

Die Common Language Runtime (CLR) versucht, die Authenticode-Signatur zur Ladezeit zu überprüfen, damit der Publisher-Beweis für die Assembly erstellt wird. Standardmäßig benötigen die meisten Anwendungen jedoch keinen Publisher-Beweis. Die Standard-CAS-Richtlinie ist nicht auf PublisherMembershipCondition angewiesen. Vermeiden Sie die unnötigen Startkosten, die mit der Prüfung der Herausgebersignatur zusammenhängen, es sei denn, die Anwendung wird auf einem Computer mit benutzerdefinierter CAS-Richtlinie ausgeführt oder muss den Anforderungen von PublisherIdentityPermission in einer nur teilweise vertrauenswürdigen Umgebung genügen. (Forderungen nach Identitätsberechtigungen haben in einer vollständig vertrauenswürdigen Umgebung immer Erfolg.)