2010-08-18 33 views
9

當我在我們的構建服務器上運行F#編譯器 - fsc.exe時,即使沒有輸入文件,也需要很長時間(〜20秒)才能運行。經過一番調查後,我發現這是因爲應用程序嘗試訪問crl.microsoft.com(可能檢查某些證書是否未被吊銷)。但是,它運行的帳戶無法訪問Internet。而且由於我們的路由器/防火牆/只是丟棄SYN數據包,fsc.exe在放棄之前會嘗試多次。fsc.exe非常慢,因爲它試圖訪問crl.microsoft.com

想到的唯一解決方案是將clr.microsoft.com設置爲hosts文件中的127.0.0.1,但這是非常糟糕的解決方案。而且,我需要在我們的生產箱上安裝fsc.exe,我不能做這樣的事情。任何其他想法?

感謝

回答

8

碰到過這樣的自己 - 這裏有一些鏈接...,以更好地說明和一些替代品

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

我挖出了這種形式的舊的MS KB的Exchange時,我們打它只是得到了DNS服務器回覆所述(可能是您的生產箱的解決方案

MS Support KB

CRL檢查超時,因爲它從不收到響應。如果路由器 發送「無路由到主機」ICMP 數據包或類似錯誤而不是 只丟棄數據包,則CRL 檢查將立即失敗,並且 服務將啓動。您可以將 條目添加到crl.microsoft.com的 主機文件或DNS服務器上,並將 將數據包發送到網絡上的合法 位置,例如 127.0.0.1,這將拒絕連接。 。「

+1

最後一個鏈接有幫助,我添加了fsc.exe.config建議那裏,它做了伎倆仍然很蹩腳的解決方案,但迄今爲止最好。 – Elephantik 2010-08-18 16:17:37