我有一个c#类库,我从Classic ASP调用。
是否可以使用visual studio进行调试?班上的断点不起作用,这并不奇怪。
我在iis7上在浏览器中运行它,而不是通过Visual Studio 2010,因为我使用的是经典的ASP页面。我是否需要在Visual Studio中运行才能使其正常工作?
我也尝试使用Response.writes,但它们导致: 当前上下文中不存在名称“响应”
答案 0 :(得分:1)
您需要将调试器附加到正在加载程序集的进程(IIS或用于调试经典ASP应用程序的其他调试程序)。
在VS2010下,转到工具 - >附加到流程(2008年也可能相同)。
答案 1 :(得分:1)
尝试在lib:System.Diagnostics.Debugger.Break();
的代码中添加要中断的代码。还要确保使用pdb符号编译和部署lib。当代码到达指令时,IIS将抛出异常。系统会要求您附加一个调试器,然后您就可以了。
答案 2 :(得分:1)
我实际上写了一篇关于此的文章:
http://www.jameswiseman.com/blog/tag/visual-studio-2010/
来自文章:
打开Visual Studio 2010
如果安装它,这很容易。如果你不这样做,可能会有点棘手; - )
在Visual Studio中打开您的网站
再次,很容易。
启动您的网站。 即打开浏览器并导航到网站。
在Visual Studio中,单击“调试”菜单 - > '附加到流程'
如果应用程序保护较低,则为“Inetinfo.exe”;如果应用程序保护较高,则为“dllhost.exe”。您可能会收到“附加安全警告”弹出窗口。如果是,请继续。起初它有点吓人,但如果它是你自己的PC上的自己的应用程序,那么你会没事的。
如果您对此感到担心,follow the advice on MSDN。
在您的代码中添加一个断点,然后导航到您将点击它的位置。
疑难解答 - 注册pdm.dll
这是我第一次尝试它。后来的尝试并不那么成功,我发现了一些我必须做的事情。
尝试附加到“脚本代码”时,我在IDE中收到以下警告。
警告:无法调试脚本代码。该 pdm.dll的正确版本不是 注册。修复Visual Studio 2010安装,或运行 “regsvr32.exe的 “%COMMONPROGRAMFILES%\微软 共享\ VS7Debug \ pdm.dll”“。
请按照这些说明操作。
疑难解答 - 重新启动IIS
这也有一次有帮助。真的不能说出原因。
答案 3 :(得分:0)
如果你在web服务中包装.net类,然后从经典的asp页面调用web服务,你将使你的生活更加轻松。
答案 4 :(得分:0)
对于调试,请将调试程序附加到进程,如其他答案中所述。
对于跟踪,我发现类库中的System.Diagnostics.Trace.Writeline()
与DebugView之类的OutputDebugString侦听器之间的组合非常方便。