VS远程调试亲历
背景:
很多情况下本地开发没有问题,可放到服务器就有问题(更气人的是测试环境时也行可就是生产环境不行!)
1、想到可能是服务器环境不对,Web服务器版本不对
2、有文件读写是不是文件夹权限
3、Web服务器没有配置对
4、防火墙。。。。。总之是各种可能性的想篇了,也尝试了,最后只好打日志!
以前也知道有远程调试但没用过,觉得不靠谱,于是也没有尝试过!正好明日碰到了一个问题,想到打日志好难哦,还要分析!于是就开始尝试远程调试:
开发环境:win7+vs2012
生产环境:win server2003
按照第一篇说的:
===========================================复制Begin==========================================
不知道大家有没有遇到过这种情况,刚开发完的程序,明明在本机能够好好的运行,可是部署到服务器过分发给用户时,总是出现莫名其妙的错误。
一时半会又看不出问题来,怎么办呢?难道只能在服务器或是客户电脑上装一个vs、跟一下代码吗?
其实不用的,vs有一个远程调试的功能。
这个功能是这样的,程序在其他的电脑上运行,但是我们可以在本地电脑上进行断点跟踪。
下面以vs2012为例,为大家介绍一下无身份验证的远程调试(如果要用有身份验证,又没有域环境,参见最后的总结),同时也说一下vs2012与以前版本在远程调试功能方面的改进。
1、从开始菜单中打开“Remote Debugger”文件夹,打开之后,你会看到两个文件夹,这个是要复制到远程计算机上的,只需要根据具体环境从两个里选出一个复制过去就好了。


2、复制完之后,在远程电脑上打开vs远程调试监视器(“msvsmon.exe”),会出现下图中的窗口,点击选项菜单,选中无身份验证和允许任何用户进行调试。
然后点击确定,这样,远程计算机就设置好了。当然,别忘了在远程计算机上启动你要调试的程序。


3、然后,我们在自己的电脑上,打开项目,从调试菜单打开附加到进程窗口,选择远程,输入远程计算机的ip,然后回车;
再选择要调试的程序,点击附加按钮。好了,点个断点,试试吧。


4、vs2012与之前版本的不同。
看看这张图,是不是很熟悉,不就是在远程计算机上的设置窗口嘛。呵呵,再仔细看看,这个张图和前面那张是不一样的。看到“仅限本机”几个字了吧。
这张图是从vs2010的远程调试监视器中截下来的,这个仅限本机是什么意思呢?经过几次试验,我得出一个结论,这个“本机”的意思,应该是“本地代码”,
和“托管代码”是想对应的。如果用vs2012之前的版本,也按照前三节所说的方法设置,是没有办法“断点”的,因为我们要调试的代码是“托管代码”。
那么,此时应该怎么设置呢?我们只能选择“Windows 身份验证”那个单选框了。附加的时候,也不能再选择远程了,只能选择“默认”。
总结一下,如果用vs2012之前的版本进行远程调试需要注意的几点:
a、不能选择无身份验证
b、如果不是域环境,远程计算机和本地计算机必须同时使用相同的帐号密码
c、远程计算机上的程序文件要相应包含“.pdb”文件



===========================================复制End==========================================
结果就报错:"msvsmon.exe 不是有效的win32程序"
网站找到处理办法:
===========================================复制Begin==========================================
msvsmon.exe 可能使用了最新平台工具集编译,从而不支持之前的的 OS,你看上面的连接,可能会有补丁包。
http://connect.microsoft.com/VisualStudio/feedback/details/759435/vs2012-msvsmon-exe-doesnt-run-on-windows-xp
可以用 depends 看一下 msvsmon.exe 的依赖的 CRT 是什么版本。
===========================================复制End==========================================
找到了一个
https://support.microsoft.com这个网址上搜“msvsmon.exe 2003”
找到了Microsoft Visual Studio 2010 Remote Debugger 的下载址如果:
https://www.microsoft.com/zh-cn/download/details.aspx?id=475
安装天win server 2003上果然能用
===========================================复制Begin==========================================
(1)从“开始”菜单中,选择“控制面板”。
(2)在“控制面板”中双击“管理工具”。
(3)在“管理工具”窗口中双击“本地安全策略”。
(4)在“本地安全策略”窗口中,选择“本地策略”。
(6)在“网络访问: 本地帐户的共享和安全模型”对话框中,将本地安全设置更改为“传统型”并单击“确定”。
(7)开启服务TerminalService
|
版本 |
Visual Basic |
C# |
F# |
C++ |
Web Developer |
|---|---|---|---|---|---|
|
学习版 |
![]() |
![]() |
![]() |
![]() |
![]() |
|
专业版、高级专业版和旗舰版 |
![]() |
![]() |
![]() |
![]() |
![]() |
更何况我是用 vs2012调试 2010可能也不行!就算行了web调试不了,没多太意义啊
于是把环境放到了win server 2008 按第一篇复制的操作,果然可以了!于是突然觉得2003你也有点老了啊!
本主题适用于:
|
版本 |
Visual Basic |
C# |
F# |
C++ |
Web Developer |
|---|---|---|---|---|---|
|
学习版 |
![]() |
![]() |
![]() |
![]() |
![]() |
|
专业版、高级专业版和旗舰版 |
![]() |
![]() |
![]() |
![]() |
![]() |
VS远程调试亲历的更多相关文章
- 微信公众号开发之VS远程调试
目录 (一)微信公众号开发之VS远程调试 (二)微信公众号开发之基础梳理 (三)微信公众号开发之自动消息回复和自定义菜单 前言 微信公众平台消息接口的工作原理大概可以这样理解:从用户端到公众号端一个流 ...
- tomcat开发远程调试端口以及利用eclipse进行远程调试
一.tomcat开发远程调试端口 方法1 WIN系统 在catalina.bat里: SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compi ...
- Visual Studio 2012远程调试中遇到的问题
有的时候开发环境没问题的代码在生产环境中会某些开发环境无法重现的问题,或者需要对生产环境代码进行远程调试该怎么办? Vs已经提供给开发者远程调试的工具 下面简单讲讲该怎么用,前期准备:1.本地登录账户 ...
- 使用Eclipse进行远程调试
转自:http://blog.csdn.net/sunyujia/article/details/2614614 今天决定做件有意义的事,写篇图文并茂的blog,为什么要图文并茂?因为很多事可能用语言 ...
- 微信公众号开发系列教程一(调试环境部署续:vs远程调试)
http://www.cnblogs.com/zskbll/p/4080328.html 目录 C#微信公众号开发系列教程一(调试环境部署) C#微信公众号开发系列教程一(调试环境部署续:vs远程调试 ...
- tomcat 远程调试
1.服务端查看cataline.sh 中的描述 cataline jpda start 开启服务端远程调试 远程调试端口JPDA_ADDRESS="8000" 2.本地代码参考 ...
- 在Visual Studio上开发Node.js程序(2)——远程调试及发布到Azure
[题外话] 上次介绍了VS上开发Node.js的插件Node.js Tools for Visual Studio(NTVS),其提供了非常方便的开发和调试功能,当然很多情况下由于平台限制等原因需要在 ...
- [教学] Delphi Berlin 10.1 开发 Windows 10 平板 App 远程调试
Delphi Berlin 10.1 开发 Windows 10 平板 App 远程调试安装步骤: 准备电脑: 一台开发电脑,安装 Delphi 开发环境 一台平板电脑,安装 PAServer,安装方 ...
- Xdebug文档(七) 远程调试
Xdebug提示调试客户端接口与PHP运行相联系.该章节解释如何设置PHP与xdebug,并推荐一些客户端. 介绍 Xdebug的远程调试器允许你检查数据结构,交互式地穿过和调试你的代码.该协议已经开 ...
随机推荐
- 安装kafka集群
1解压tar包 tar -zxvf kafka_2.-.tgz 2.进入config目录 3.配置server.properties文件 # Licensed to the Apache Softwa ...
- linux 实时查看Tomcat日志信息
cd /../tomcat/logs 进入tomcat/logs/文件夹下 # tail -f catalina.out
- Java -- 新IO -- 目录
20.1 Java 新IO简介 20.2 缓冲区与Buffer 例:演示缓冲区的操作流程 Class : IntBufferDemo01 20.2.2 深入缓冲区操作 20.2.3 创建子缓冲区 20 ...
- Dubbo -- 系统学习 笔记 -- 示例 -- 结果缓存
Dubbo -- 系统学习 笔记 -- 目录 示例 想完整的运行起来,请参见:快速启动,这里只列出各种场景的配置方式 结果缓存 结果缓存,用于加速热门数据的访问速度,Dubbo提供声明式缓存,以减少用 ...
- Dubbo -- 系统学习 笔记 -- API参考手册
Dubbo -- 系统学习 笔记 -- 目录 API参考手册 配置API 注解API 模型API 上下文API 服务API API参考手册 Dubbo的常规功能,都保持零侵入,但有些功能不得不用API ...
- SaltStack salt-ssh 用法
以下在 master 操作: (1) 我们在安装部署 SaltStack 的时候,需要安装 salt 客户端,还要与 salt 服务端进行认证才能互相通信(2) 如果我们使用 salt-ssh 的方式 ...
- Ansible常用模块使用
Ansible官方提供了非常多的模块,还有若干第三方模块,我们也可以自己编写模块. Ansible对远程服务器的操作实际是通过模块完成的,先将模块拷贝到远程服务器,完成操作后,然后在远程服务器上删除该 ...
- mosquitto 参数配置
mosquitto 参数配置 1.retry_interval 当QoS为1或2的消息已经被发送后,mosquitto在一段时间内仍未接收到客户端的反馈消息,将重新发送消息. 默认为20秒 2.sy ...
- 《C++ Primer Plus》第17章 输入、输出和文件 学习笔记
流是进出程序的字节流.缓冲区是内存中的临时存储区域,是程序与文件或其他I/O设备之间的桥梁.信息在缓冲区和文件之间传输时,将使用设备(如磁盘驱动器)处理效率最高的尺寸以大块数据的方式进行传输.信息在缓 ...
- Qt编写数据库通用翻页demo(开源)
在Qt与数据库结合编程的过程中,记录一多,基本上都需要用到翻页查看记录,翻页有个好处就是可以减轻显示数据的表格的压力,不需要一次性将数据库表的记录全部显示,也基本上没有谁在一页上需要一次性显示所有记录 ...

