当远程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的程序,所以可以精确定位到错误的源头,所以对开发排错肯定有所帮助。

开发机器上利用vs2013调试远程IIS上的c#程序的更多相关文章

  1. 解放双手:如何在本地调试远程服务器上的Node代码

    写在前面 谈到node断点调试,目前主要有三种方式,通过node内置调试工具.通过IDE(如vscode).通过node-inspector,三者本质上差不多.本文着重点在于介绍 如何在本地通过nod ...

  2. 在ZYNQ-7000平台上利用PS点亮PL上的LED灯

    在ZYNQ-7000平台上利用PS点亮PL上的LED灯 1.实验方案 图1    实验方案系统框图 2.具体步骤 2.1.vivado工程建立 ①打开vivado集成开发环境,点击“Create Pr ...

  3. 使用pycharm调试远程服务器上的程序

    一.PyCharm实现远程调试代码 1. 和远程服务器建立连接,tools àDeploymentàConfiguration 2. 点击“+”号,按照远程服务器信息配置信息 点击“Advanced ...

  4. Linux上利用NFS实现远程挂载

    两台服务器 192.168.1.1 [WEB服务器] 192.168.1.2 [录音服务器] 说明 在192.168.1.2服务器上每天有许多录音文件生成,192.168.1.1作为WEB服务器,里面 ...

  5. 利用本地浏览器远程服务器上的jupyter notebook

    windows中访问远程服务器的方式有很多种:使用windows系统自带的网络功能,直接输入服务器地址访问:使用putty软件远程访问:使用xftp软件登陆:还可以使用x2go客户端图形界面远程访问. ...

  6. NodeJS学习笔记 进阶 (6)本地调试远程服务器上的Node代码(ok)

    https://github.com/chyingp/nodejs-learning-guide

  7. Visual Studio(Year)编辑器调试在IIS发布的Web程序出现错误的解决

    如下图所示:

  8. VS停止调试,IIS Express也跟着关闭了

    问题描述: 我们会时不时地用VS进行调试,当点击停止调试的时候,网站再刷新一下,便会出现网页走丢的现象,然后需要重新打开网站,很是麻烦,令人抓狂.如何解决呢? 首先说下,为啥会产生这种问题? 大致描述 ...

  9. C# 上传文件至远程服务器

    C# 上传文件至远程服务器(适用于桌面程序及web程序) 2009-12-30 19:21:28|  分类: C#|举报|字号 订阅     最近几天在玩桌面程序,在这里跟大家共享下如何将本地文件上传 ...

随机推荐

  1. 原生js操作DOM基础-笔记

    原文参考http://mp.weixin.qq.com/s?__biz=MzU3MDA0NTMzMA==&mid=2247485490&idx=1&sn=15197b4b53e ...

  2. Spring 框架(三)

    1 spring l AOP :切面编程 切面:切入点 和 通知 结合 l spring aop 编程 <aop:config> 方法1: <aop:pointcut express ...

  3. C++类继承--继承后函数的值

    类的继承会首先寻找基类,若基类未实现,则会寻找派生类的函数 1. class继承,函数不继承 #include <stdio.h> class Base { public: Base(){ ...

  4. freebsd默认不是gcc构建

    xunsearch在freebsd上死活装不上,用gcc编译通过. freebsd默认不是gcc编译工程,所以下个gcc ./configure CC=gcc48 编译. 觉得clang编译器不可能有 ...

  5. 回溯法最优装载问题(java)

    1.问题描述:      有一批共有 n 个集装箱要装上两艘载重量分别为 c1 和 c2 的轮船,其中集装箱 i 的重量为 w[i], 且重量之和小于(c1 + c2).装载问题要求确定是否存在一个合 ...

  6. 浅谈回归Regression(一)

    一.什么是回归? 孩子的身高是否与父母有关? 实际上,父母和孩子的身高是受到回归效应影响的.在时间纵轴上受影响.具有随机性的事物,无不遵循这一规律. 只要数据足够大,人类的身高或者智商,都有趋于平均值 ...

  7. Picasso通过URL获取--用户头像的圆形显示

    1.设置布局属性: <ImageView android:scaleType="fitXY"/> 2.BitmapUtils类-- 得到指定圆形的Bitmap对象 pu ...

  8. androidcarsh

    package com.oval.cft; import java.io.File;import java.io.FileOutputStream;import java.io.PrintWriter ...

  9. 又续CSS3

    这次主要讲呢 1.box-sizing属性 语法:box-sizing: content-box|border-box|inherit; box-sizing属性的用法 box-sizing属性可以为 ...

  10. Tomcat中server.xml文件内各节点详解

    由于 Tomcat 基于 Java,实际上在各种 Linux 发行版里的配置方法都大同小异,只是我看见在 Arch Linux 环境里搭建 Tomcat 的文章比较少,所以在 Arch Linux 实 ...