Visual Studio远程调试监视器(MSVSMON.EXE)的32位版本不能用于调试64位进程或64位转储。请改用64位版本。
来源:互联网 发布:苏30mkk和苏30mki知乎 编辑:程序博客网 时间:2024/06/11 03:57
原文链接
Visual Studio 2012/2010/2008 远程调试
部署环境:ASP.NET(C#)+IIS+Win7 64 bit
很多公司的开发模式都是将开发机器和服务器分开,也就是开发一台机,服务器一台机。而测试人员会在服务器上录入测试数据,此时报错了【由于开发程序时忽略了数据类型或者数据是否合法导致的】,如果是简单的错误那还好办,看下代码直接消灭。要是生命力比较顽强的bug,那么就需要调试了。
此时开发人员会产生几种设想:
1、赶紧把服务器的环境部署到本地,然后把生成的dll扔进去进行调试。这时会出现几种结果,如果顺利的话,通过了调试解决了bug,如果不顺利的话,就会延长bug的解决时间。不顺利的情况可能会有:对程序的配置不熟悉,本地可能在注册表缺少了对那个插件的注册,目录可能存在中文……种种的,种种的问题。
2、在服务器上装上一个Visual Studio 2008/2010/2012[后面简称vs工具],然后把程序文件拷过去,然后将生成的文件dll附加到iis进程而进行调试,哈哈,顺利解决了bug,但是一看钟表半天过去了。而且服务器多了很多文件,仅仅是为了你调试这个程序的文件。如果是管理不是很严谨的公司那还说的过去,要不然少不了要被喷一顿。
好吧,不说口水话了,进入正题。
第一步:将vs工具里的Remote Debugger文件夹拷贝到目标机器。大致的目录应该是:D:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\Remote Debugger,或者从开始菜单那里可以找到它的快捷方式,如下图:
第二步:在服务器上打开Remote Debugger文件夹,如果是32位的就运行X86里面的msvsmon.exe,如果是64位的就运行X64里面的msvsmon.exe。关于32位和64位这里要注意一下,以你的IIS应用程序池为主,在应用程序池那里右键,点击高级设置,可出现以下窗体。如果启用32位应用程序设置为true的话,那么就需要运行X86里面的msvsmon.exe。
运行后会出现以下界面
第三步【最关键一步】:将你本地的账号密码设置成跟服务器一样,因为远程调试也是需要用户凭证的。账号和密码都要一致哦!!!
第四步:用vs工具打开你的程序源码,用快捷键ctrl + alt + p 打开附加进程窗体,如下图
传输:默认
限定符:默认是本机的机器名称,设置为你的服务器IP(如:192.168.1.250)
设置好按回车就可以看到250这台机子的进程,然后找到w3wp.exe这个进程,点击附加。【如果没有看到w3wp.exe,可以把下面显示所有用户的进程勾上】
接下来就尽情享受代码的调试把。
比较一下下面两种调试的方法,看谁犯过第一种,反正我犯过。^_^
1、为了调试某个dll而直接在Web程序里直接按F5进行调试,如果是小项目小网站的话,那没问题。如果是一个几十M甚至几百M的网站那么问题就来了。这样子的调试非常的慢,而且每次都需要重新生成整个网站的dll,那速度,是可忍孰不可忍。
2、将你需要调试的dll重新生成一下,把dll和pdb文件拷到已发布好的网站bin目录底下,然后ctrl + alt + p附加到IIS进程w3wp.exe,然后就可以调试你的dll了。这样即快又方便,做个开心的程序员吧。
好久没写过东西了,距离上一篇Installshield有1年多了,哎。以后坚持有空就写点文章,多总结自己的经验。
- Visual Studio远程调试监视器(MSVSMON.EXE)的32位版本不能用于调试64位进程或64位转储。请改用64位版本。
- Windbg 调试工具32位/64位版本下载
- "Microsoft Visual Studio 远程调试监视器”(MSVSMON.EXE) 似乎没有在远程计算机上运行"的解决方案之一
- 使用visual c++ 2005远程调试64位系统上32位与64位程序
- 64位调试vsMSVSMON.EXE
- 安装 Windows 64 位版本的调试工具
- VC6在64位Windows7(家庭版或其他版本)下调试的时候,再结束调试,程序无法退出
- Windbg 32位版本和64位版本的选择
- Windbg 32位版本和64位版本的选择
- Microsoft Visual Studio 调试监控器(MSVSMON.EXE)未能启动
- 32位/64位WIN2003各版本
- STK11 32位和64位版本
- 无法附加到进程。Visual Studio 2015 远程调试器(MSVSMON.EXE)似乎没有在远程计算机上运行。
- 64位版本Windows服务器调试小技巧
- VC 2008 远程调试(msvsmon.exe是什么进程)
- 远程调试监视器(MSVSMON.EXE)似乎没有在远程计算机上运行“的完美解决方案
- 远程调试监视器(MSVSMON.EXE)似乎没有在远程计算机上运行“的完美解决方案
- 调试运行于64位机上的32位w3wp进程
- 深入理解Java内存模型(一)——基础
- 渗透测试工具sqlmap基础教程
- Android反挂钩技术-Java层
- java ClassNotFoundException和NoClassDefFoundException的差别
- Android小记:Animation的Interpolator使用方法
- Visual Studio远程调试监视器(MSVSMON.EXE)的32位版本不能用于调试64位进程或64位转储。请改用64位版本。
- 【linux】sed 批量替换 tab替换为空格
- ubuntu自主配置ip地址
- CentOS 6.4 下 sync
- Codeforces 306C White, Black and White Again (简单计数)
- 音频,PCM裸流的一些扫盲记录
- Android--跑马灯
- Git 工作区、暂存区和版本库
- iOS 自动布局图片类似微博