views:

110

answers:

2

I've recently moved my dev environment (VS.NET 2008 SP1 on VMWare) over to a new network, using a more restrictive firewall. During subsequent builds, the license compiler (lc.exe) took a long time to complete (several minutes). I assume it was timing out because it was not able to connect through the firewall, but I can see no evidence of timeouts or build errors in the event log.

Do you know if lc.exe does try to communicate back to the vendor's license server, and if so whether it uses a non-http port to do so? Google was not my friend on this one.

+1  A: 

lc.exe might well connect externally if you're using a component that has a custom licence provider.

This article (which is very very elderly, but still appropriate) describes how this might be done.

Consider building a very small scratch project that doesn't require anything beyond the regular .NET controls, and see if that builds satisfactorily. If so, then something like WireShark might tell you what's going on, or check with the vendor of the control.

Jeremy McGee
+1  A: 

This can happen if you are dealing with assemblies that are digitally signed. Try the following, after installing .net 3.5 SP1:

1) In internet explorer, tools | options | advanced | security | uncheck 'check for publisher's certificate revocation'.
2) edit c:\windows\microsoft.net\framework\v2.0.50727\config\machine.config, and add the following key:

 <configuration>
<runtime>
    <generatePublisherEvidence enabled="false"/>

I had a very similar issue (long JIT times), and the second absolutely fixed our problem. As Jeremy also notes, we determined this was our problem when we used wireshark to see that the server was timing out on DNS requests to resolve the name of external servers used for the certificates.

JohnW