This is what worked for me (Updated for VS 2013, see revision history for 2010, for VS 2015 see this: https://stackoverflow.com/a/32744234/218971):
-
Right-click your Web Application Project ▶
Properties
▶Web
, then configure theServers
section as follows:- Select IIS Express ▼ from the drop down
- Project Url:
http://localhost
- Override application root URL:
http://dev.example.com
- Click Create Virtual Directory (if you get an error here you may need to disable IIS 5/6/7/8, change IIS’s
Default Site
to anything but port:80
, make sure Skype isn’t using port 80, etc.)
-
Optionally: Set the
Start URL
tohttp://dev.example.com
-
Open
%USERPROFILE%\My Documents\IISExpress\config\applicationhost.config
(Windows XP, Vista, and 7) and edit the site definition in the<sites>
config block to be along the lines of the following:<site name="DevExample" id="997005936"> <application path="/" applicationPool="Clr2IntegratedAppPool"> <virtualDirectory path="/" physicalPath="C:\path\to\application\root" /> </application> <bindings> <binding protocol="http" bindingInformation=":80:dev.example.com" /> </bindings> <applicationDefaults applicationPool="Clr2IntegratedAppPool" /> </site>
-
If running MVC: make sure the
applicationPool
is set to one of the “Integrated” options (like “Clr2IntegratedAppPool”). -
Open your
hosts
file and add the line127.0.0.1 dev.example.com
. -
► Start your application!
Some great advice from the comments:
- You may need to run Visual Studio as Administrator.
- If you want to make other devs see your IIS run
netsh http add urlacl url=http://dev.example.com:80/ user=everyone
- If you want the site to resolve for all hosts set
bindingInformation="*:80:"
.
Use any port you want, 80 is just convenient. To resolve all hosts you’ll need to run Visual Studio as an administrator