当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > 在Apache上调试ASP.NET 1.1/2.0代码

ASP.NET
[EnterpriseServices]利用assembly定义我们的组件在COM+中的注册方式
crystal reports for Visual Studio .NET(webformsample)
XML指南:微软的XML解析器
展现C# 清单5.10 生成exe文件执行的问题
vb.net 读写xml方法(1)
选择文件夹的对话框控件c#
特洛伊木马服务器源代码(C#)
上传图片画带阴影的水印.(C#)
vb.net读写xml(2)--实现datagrid与xml的沟通(原创)
列出所有的sheet,然后点击其中的一个,自动跳过去
从VB中的Datagride中向excel导入数据
XML指南:XML CDATA
XML指南:XML编码
XMLDOM对象方法:Document对象方法
XMLDOM对象方法:对象事件
XMLDOM对象方法:对象属性
[一个登录窗体的完整范例,包括登录,密码更改,输入错误三次退出]
[关于判断输入数据是否在数据库中的方法。]
[VBA]office中内建的faceid所对应的图标
web组件设计,利用接口(IPostBackDataHandler)产生数据回传的问题

在Apache上调试ASP.NET 1.1/2.0代码


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 293 ::
收藏到网摘: n/a

  我们知道ASP.NET 1.1的项目由于微软设计和实现的原因,对IIS的依赖非常的紧密。不管是创建ASP.NET项目,还是打开、调试ASP.NET项目,都要求IIS运行正常,否则什么都做不成。那么当我们在Apache上运行ASP.NET后,可不可以对其进行源代码级的step into/out调试呢?

  由于Apache2项目中的mod_aspdotnet sub-project实现上的问题(也可以说是bug吧),使我们在其上运行ASP.NET程序时,和在IIS上的aspnet_wp|w3wp中运行的正确性上有一些差别,所以在Apache(mod_aspdotnet)上调试ASP.NET项目的源代码就很有必要。虽然ASP.NET 2.0已经正式release,不过1.1版本的项目还是目前的主流,所以我们分别看看Apache对这两个版本Framework的支持。正如我前面所说,ASP.NET 1.1的项目紧密地依赖IIS,所以目前我只能在Apache上调试已有的ASP.NET 1.1项目,而不能创建(原因后面再说)。由于IIS先安装并占用了80端口,所以我的Apache Web Server就只能运行在其它端口上了(如:8080,通过httpd.conf文件配置)。

  首先,我们需要让这个被调试的项目在IIS上运行正确,并且项目可以被VS.NET 2003 IDE正确开启。然后配置Apache,让这个项目同时在Apache上也运行正确。我们就可以通过IDE的Ctrl+Alt+P来Attach希望被debug的进程,这时我们会看到在任务列表(需要check "Show system processes")里居然有两个Apache.exe进程。这里我也不知道应该是哪个,虽然它们的类型都是".NET, Win32",不过只有一个是mod_aspdotnet的宿主进程。当然我们还是可以用个小trick来判断,就是打开taskmgr并刷新Apache上运行的Web站点的页面,看那个Apache.exe进程占用CPU,那么它就是asp.net支持模块的宿主。Attach成功后就可以在VS.NET里面设置断点,进行step into/out的源代码级调试了。

  上面是对ASP.NET 1.1项目的调试方法,如果是ASP.NET 2.0的项目呢?由于.NET Framework及Visual Studio 2005的改进,调试2.0的ASP.NET项目变得奇easy! 只需要把项目在Apache上运行好后,用Visual Studio 2005打开希望调试的页面的源代码(*.cs)文件,Attach上Apache的进程后直接设置断点就可以了,根本不需要开启项目,当然也就和IIS完全脱离关系了。

 


// 不管是1.1还是2.0,都需要确定到底是哪个Apache.exe进程是宿主

[1] [2] 下一页