views:

1687

answers:

4

There is a post on IIS.net titled "Using Visual Studio 2008 with IIS 7.0", but I don't quite believe that's what people do. (Among other gems, it suggests publishing your web app after every change.)

If you debug your ASP.NET applications in IIS7 instead of Cassini, I would love to hear your methods, tips, and tricks.

Edit: I'm referring specifically to local debugging.

+1  A: 

Well, setting up IIS 7 for debugging isn't terribly tricky, but what I prefer to do to save time (and if I'm uninterested in debugging from a cold start) is to launch the Web Application/Web Site in a web browser first - let ASP.net precompile etc.

Then I'll attach to the IIS process using Visual Studio. Once attached I can go about setting breakpoints and debugging, I find this is a faster way to get going.

RobS
+1  A: 

I simply attach Visual Studio to the IIS worker process, if you have multiple app pools then you can run "issapp" to get the appropriate PID.

I never debug by clicking "Start Debugging".

This has a nice advantage of working on remote servers as well, if you have installed msvcmon.

FlySwat
I've been doing this for the last 2 months, and it's definitely a huge improvement over F5.
Portman
+1  A: 

I launch Visual Studio as an Administrator, then Debug > Attach to Process > w3wp.exe.

George V. Reilly
Thanks, this is good for when you don't have the entire website open in VS
AndyMcKenna
+2  A: 

I believe I pointed you toward that guide, but as I look closer at it I think that's a little more elaborate than what I do. I have done the following:

  1. Create a web site in IIS for your project.

  2. Add a custom host header to that site, for example http://mysite:*/ or http://mysite:80/

  3. Open the hosts file located at C:\Windows\system32\drivers\etc in notepad (Run As Admin if you're on Vista) and add the following line:

    mysite        127.0.0.1
    

    If you have more than one host header on your website in IIS, you need to have each one represented in the hosts file.

Now, when you press F5 in Visual Studio, the site will open with the url http://mysite and you'll be able to debug, set breakpoints etc as usual, except with no Cassini related problems... ;)

Edit: For clarification, I just want to point out that I have never had to attach any process to VS, as far as I know. At the very least I do not have to do it every time.

Tomas Lycken
So if your code is in some folder like c:\code\trunk\mywebsite, you set that path to be the root directory for the web site?
Portman
Yes. In IIS, you can choose the root path for your site as you wish, so you set the path to wherever you store your ASP.Net Web Project files.
Tomas Lycken