One of the more frustrating aspects of the ASP.NET development server is the impossibility of debugging on it from a remote location. There are myriad use cases for this, such as doing browser dependent testing (IE6m for instance), debugging from mobile devices, etc. Being able to receive external traffic while debug locally is such a routine exercise (while doing Java professional work, for instance), that it befuddles the mind to think why Microsoft intentionally prevents developers from doing this.
One way around this silliness is by doing a port forward. I downloaded a free command line utility called rinetd. All you have to do is tell it an open port to listen on and the port it should forward to. Then, you can point a virtual machine, mobile device, etc. to the specified port on your local machine and interact with it without any problems.
Here's an example config file for it:
0.0.0.0 8080 127.0.0.1 1395 0.0.0.0 9080 127.0.0.1 1395
This instructs the utility to listen on all interfaces (0.0.0.0) on port 8080 and forward it to address 127.0.0.1 on port 1395. Below are the contents of a batch file I created to simplify running it from the command line:
@echo off echo ================================================ echo Running rinetd with the following configuration: echo ================================================ type rinetd.conf rinetd.exe -c rinetd.conf