zoukankan      html  css  js  c++  java
  • 开发机器上利用vs2013调试远程IIS上的c#程序

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

  • 相关阅读:
    (转)证券公司信息化——4
    面试常见高频算法题总结
    git常用命令
    JDBC框架——DBUtils
    springboot读取 yaml或者properties文件几种方式
    log4j2配置
    java通过SparkSession连接spark-sql
    列式存储格式之Parquet
    动态规划专题
    CountDownLatch、CyclicBarrier和Semaphore用法
  • 原文地址:https://www.cnblogs.com/Griffin/p/6380644.html
Copyright © 2011-2022 走看看