如何在Vista上的IIS7下调试ASP.NET应用程序?

4

在IIS.net上有一篇名为"使用Visual Studio 2008与IIS 7.0"的文章,但我认为这并不是人们实际做的事情。(除了其他宝石之外,它建议在每次更改后发布您的web应用程序。)

如果您在IIS7中调试ASP.NET应用程序而不是Cassini,则很想听听您的方法、技巧和诀窍。

编辑:我特别指的是本地调试。


你是指本地调试还是远程调试? - Dillie-O
1
我受够了Cassini的错误,所以我在IIS中创建了网站,然后通过Visual Studio打开并使用F5进行调试,自那以后,我成为了一个更快乐的人。 - Chad Grant
4个回答

4

我相信我已经引导您查看了该指南,但是当我更仔细地查看它时,我认为那比我所做的要复杂一些。我已经完成了以下操作:

  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.

现在,在Visual Studio中按下F5键时,网站将使用URLhttp://mysite打开,您可以像往常一样进行调试、设置断点等操作,但没有任何与Cassini相关的问题... ;)

编辑:为了澄清,我想指出我从未必须将任何进程附加到VS,据我所知。至少我不必每次都这样做。


那么,如果您的代码在某个文件夹中,比如说c:\code\trunk\mywebsite,您将把该路径设置为网站的根目录? - Portman
是的,在IIS中,您可以根据自己的需要选择站点的根路径,因此您可以将路径设置为存储ASP.Net Web项目文件的任何位置。 - Tomas Aschan

2

我只需将Visual Studio附加到IIS工作进程上,如果您有多个应用程序池,则可以运行“issapp”以获取适当的PID。

我从不通过单击“开始调试”来调试。

这样做的一个好处是,如果您安装了msvcmon,它也可以在远程服务器上使用。


我已经做了两个月了,这绝对比F5有了巨大的改进。 - Portman

1

好的,设置IIS 7进行调试并不是非常棘手,但我更喜欢为了节省时间(如果我对从冷启动调试不感兴趣)先在Web浏览器中启动Web应用程序/网站 - 让ASP.net预编译等。

然后,我将使用Visual Studio附加到IIS进程。 一旦附加,我就可以开始设置断点和调试,我发现这是一个更快的上手方式。


1

我以管理员身份启动Visual Studio,然后选择调试(Debug) > 附加到进程(Attach to Process) > w3wp.exe。


谢谢,这对于当你没有在VS中打开整个网站时非常有用。 - AndyMcKenna

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接