当远程IIS上的C#程序出现问题,怎么排错,一般我们通过看日志排查错误的方法,这种方法在程序异常日志都打印出来的情况下是可以解决的,但如果程序日志不详细,或者从日志看不出有用的内容的时候怎么排错?

本文介绍通过vs2013的msvsmon.exe来远程调试IIS上的C#程序,感谢刘慧锋提供的帮助。

环境:

IIS:10.10.2.142,机器名:WEBAPIL2

开发机IP:10.10.0.60 ,机器名:LIURENYUAN-DEV

目的:通过10.10.0.60去调试10.10.2.142上的IIS的C#程序

步骤:

1.在vs2013的安装目录查找msvsmon.exe,注意有两个msvsmon.exe,一个是x86的,一个是x64的,本文使用x64的,

路径:C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\Remote Debugger\x64\msvsmon.exe

如下图:

2. 共享x64目录,以便远程的IIS机器上可以执行该目录下的msvsmon.exe,如下图:

3.然后我们在10.10.2.142上去查看,能否找到这个共享目录,因为我们要在10.10.2.142上访问这个共享目录下的msvsmon.exe,从10.10.2.142访问需要输入10.10.0.60上的用户名称密码才能访问,如下图:

4.在10.10.2.142上打开x64共享目录,如下图:

5.双击上图中共享目录x64下的msvsmon.exe,如下图:

6.点击上图中的tools-options,弹出如下图,勾选如下图中的内容,然后点ok.

点击ok后如下图:

7.关闭10.10.2.142上的防火墙,如下图:

8.查看10.10.2.142上的版本,开发机vs2013上的代码版本须保持与10.10.2.142上的一致,如下图:

9.更新开发机器10.10.0.60上的代码与10.10.2.142上的版本一致,如下图所示。

10.代码更新一致后,开发机器10.10.0.60上的vs2013重新生成解决方案,如下图:

11.开发机10.0.0.60上的vs2013上点菜单上的调试→附加到进程 ,然后在弹出的对话框中的”传输“后面下拉框中选择远程(无身份验证),再点击查找,可以找到我们的远程IIS,远程调试端口为4018,如下图:

12.点击上图中的选择,会列出10.10.2.142上的所有进程,我们选择10.10.2.142上的w3wp.exe进程,然后选择附加 ,如下图:

13.然后可以看到vs2013已经处于高度状态,如下图:

14.接下来我们用vs2013在登录接口getPublicKey上设置一个断点,然后用开发机的浏览器登录10.10.2.142,然后看vs2013里的断点能否停住,如下图:

上图中的getPublicKey处于pending状态,再看后台的断点已经停住了,如下图:

至此,通过vs2013的msvsmon.exe调试远程IIS上的C#程序就已经成功了。

此方法可以利用开发机上的vs2013一步一步的调试远程机器上的IIS的程序,所以可以精确定位到错误的源头,所以对开发排错肯定有所帮助。

转载于:https://www.cnblogs.com/Griffin/p/6380644.html

开发机器上利用vs2013调试远程IIS上的c#程序相关推荐

  1. core部署iis的 调试net_远程调试远程 IIS 计算机上的 ASP.NET Core - Visual Studio | Microsoft Docs...

    在 Visual Studio 中远程调试远程 IIS 计算机上的 ASP.NET CoreRemote Debug ASP.NET Core on a Remote IIS Computer in ...

  2. 调试远程服务器上的代码时报错:调试设置中的Python路径无效

    错误 当在本地调试远程服务器上的代码时,报错: 调试设置中的Python路径无效 踩坑 根据提示去launch.json文件里 以为是"python": "${comma ...

  3. java拷贝远程服务器上文件,java拷贝远程服务器上文件

    java拷贝远程服务器上文件 内容精选 换一换 在Windows模式下,调试功能暂不可用.为支持多交叉架构的调试场景,需要在安装MindStudio的服务器(UI Host)上安装gdb-multia ...

  4. java 获取服务器上文件,java获取远程服务器上的文件

    java获取远程服务器上的文件 内容精选 换一换 已成功登录Java性能分析.待安装Guardian的服务器已开启sshd.待安装Guardian的服务器已安装JRE,JRE版本要求为Huawei J ...

  5. 读取远程服务器上文件内容,读取远程服务器上的文件

    读取远程服务器上的文件 内容精选 换一换 已成功登录Java性能分析.待安装Guardian的服务器已开启sshd.待安装Guardian的服务器已安装JRE,JRE版本要求为Huawei JDK 8 ...

  6. 卡主 登录不上_香港服务器远程不上几大原因

    香港服务器远程不上几大原因 在使用香港服务器开展业务时,服务器有时会大大小小的出现一些故障,例如服务器远程连接不上,服务器遭到网络攻击等情况,远程不上又是哪些问题导致的呢,第一步主要检查服务器网络是否 ...

  7. 利用c#实现远程注入非托管WIN32程序,并利用嵌入汇编调用非托管WIN32程序中的内部过程...

    c#通过调用windows API函数,可以很轻松的完成非托管WIN32程序的注入.内存读写等操作,以下为c#实现远程注入非托管WIN32程序,并利用嵌入汇编调用非托管WIN32程序中的内部过程的源码 ...

  8. 基于服务器利用VS调试远程代码

    一.需求 本次想要运行的项目是一个表格识别的任务叫TGRNet,具体的https://github.com/xuewenyuan/TGRNet代码放在服务器上,最初使用docker配置环境,仅仅希望能 ...

  9. 在IIS上部署ASP.NET Core Web API

    目录 Visual Studio 2019和Dot Net Core 3.0 Windows Server上的Dot Net Core运行时 在服务器上启用IIS IIS应用程序池 IIS网站 创建A ...

最新文章

  1. 3dsmax biped 骨骼姿势 对称操作
  2. windows备份与还原和两个主机的相互通信
  3. 交换机、路由器启动过程详述
  4. Maven私服搭建(Nexus Repository Manager 3)
  5. Citrix产品及技术解析
  6. secure使用vi编辑远程机器文件出现4;m
  7. TypeScript Parameter Destructuring 语法 - 参数解构
  8. ssl提高组周三备考赛【2018.10.31】
  9. python 温度转换程序_Python程序将米转换为码
  10. qt翻译--QDragMoveEvent拖放类
  11. C++编译器与链接器工作原理
  12. 3个原因告诉你,为什么选择HTML5大前端?
  13. python数据处理可以做什么菜_厌倦了EXCEL想玩点新花样?教你利用Python做数据筛选(下)...
  14. Android sendEmptyMessage(0)里面的“0”是啥意思?
  15. FPGA 3-8译码器
  16. 关于最新版的JCreator只能编译不能运行的问题
  17. 显示器最大分辨率测试软件,液晶显示器分辨率快速设置工具
  18. fgui快速接入到一个laya实例项目中
  19. DCDC电源芯片的引脚功能及应用-BUCK芯片和BOOST芯片
  20. linux移动文件夹覆盖,linux 批量文件移动及复制覆盖

热门文章

  1. ANDROID L日志系统——JAVAAPI与LIBLOG
  2. Binder源码分析之驱动层(原)
  3. Android Binder 分析——原理
  4. 计算机作文点评,未来的电脑作文评语
  5. 打开有视频的文件夹~~当遇到某些特定的视屏格式就会出现Activemovie Window:Explorer.EXE-应用程序错误
  6. 2021.02.01 Visual QA论文阅读
  7. [USACO1.5]数字金字塔 Number Triangles
  8. rhel6上使用udev配置oracle asm,Red Hat Enterprise Linux 6使用udev配置Oracle ASM总结文档
  9. gis 大屏_gis大屏可视化应用技术方案_gis大屏可视化应用技术_gis大屏可视化应用 - 帆软...
  10. docker镜像内容如何查看_如何快速打通 Docker 镜像发布流程?