When you run MSVSMON.EXE on Vista, do you get the dreaded message indicating that you need to set the firewall, but when you do, MSVSMON.EXE errors out with an Incorrect Function message? After much struggle, I finally found the trick to remote debugging working correctly. Many thanks to this post on the MSDN Forums from Sam George.

It seems that even with the Vista SP1 Update, MSVSMON.EXE does not properly set the firewall. You’ll need to set it up manually with the following batch file:

netsh advfirewall firewall add rule name=”Microsoft Visual Studio Remote Debugger – UDP 137″ dir=in action=allow enable=yes localport=137 protocol=udp

netsh advfirewall firewall add rule name=”Microsoft Visual Studio Remote Debugger – UDP 138″ dir=in action=allow enable=yes localport=138 protocol=udp

netsh advfirewall firewall add rule name=”Microsoft Visual Studio Remote Debugger – TCP 139″ dir=in action=allow enable=yes localport=139 protocol=tcp

netsh advfirewall firewall add rule name=”Microsoft Visual Studio Remote Debugger – TCP 445″ dir=in action=allow enable=yes localport=445 protocol=tcp

Of course, make sure you run the batch file from an elevated command prompt.