2010-08-18 4 views
9

Wenn ich F # Compiler - fsc.exe - auf unserem Build-Server laufen dauert es (~ 20sec) zu laufen, auch wenn es keine Eingabedateien gibt. Nach einigen Untersuchungen habe ich herausgefunden, dass die Anwendung versucht, auf crl.microsoft.com zuzugreifen (wahrscheinlich um zu überprüfen, ob einige Zertifikate nicht gesperrt sind). Das Konto, unter dem es ausgeführt wird, hat jedoch keinen Zugriff auf das Internet. Und weil unsere Router/Firewalls/was auch immer nur die SYN-Pakete fallen lässt, versucht fsc.exe mehrmals, bevor es aufgibt.fsc.exe ist sehr langsam, weil es versucht, auf crl.microsoft.com zuzugreifen.

Die einzige Lösung, die in den Sinn kommt, ist clr.microsoft.com auf 127.0.0.1 in Hosts-Datei zu setzen, aber es ist ziemlich fiese Lösung. Außerdem brauche ich fsc.exe auf unserer Produktionsbox, wo ich solche Dinge nicht machen kann. Irgendwelche anderen Ideen?

Dank

Antwort

8

über diese selbst kommen - hier sind einige Links ... zu einem besseren Beschreibungen und einige Alternativen

http://www.eggheadcafe.com/software/aspnet/29381925/code-signing-performance-problems-with-certificate-revocation-chec.aspx

ich diese Form für Exchange eines altes MS KB ausgegraben, wenn wir getroffen es ... Wir waren gerade die DNS-Server wie angegeben antworten (könnte die Lösung für Ihre Produktion Box sein.)

MS Support KB

Die CRL-Prüfung läuft ab, weil sie niemals eine Antwort erhält. Wenn ein Router ein ICMP-Paket " " oder einen ähnlichen Fehler anstelle von Senden nur die Pakete senden würde, würde die Überprüfung CRL sofort fehlschlagen, und der Dienst würde starten. Sie können einen Eintrag auf crl.microsoft.com in der Host-Datei oder auf dem DNS-Server und senden Sie die Pakete zu einem legitimen Speicherort im Netzwerk, wie 127.0.0.1, die die Verbindung ablehnen wird .. . "

+1

Der letzte Link half. Ich habe fsc.exe.config wie dort empfohlen hinzugefügt und es hat den Trick. Immer noch ziemlich beschissen Lösung, aber bis jetzt am besten. Danke – Elephantik