如何在本地调试服务器上的站点?
 
如果要在本地调试服务器上的站点我们需要用到一个远程调试工具msvsmon.exe。
 
我们可以再VS安装目录中找到它
 
如:C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\Remote Debugger\x64\msvsmon.exe
 
 
 
因为msvsmon.exe程序需要在服务器上运行我们可以将该程序所在目录设置为共享目录,或者直接将其复制到服务器上:
 

 
 
 
在运行msvsmon.exe程序前需要先关闭防火墙,如何熟悉防火墙配置可以进行具体的防火墙配置,
这里直接关闭防火墙,以保持通讯能够正常进行
 

 
 
现在在服务器上运行msvsmon.exe程序,可以从拷贝的文件中运行,也可以从共享目录中运行
 

 
 
这里我们以无身份验证的方式进行调试,打开工具中的选项菜单,进行如下配置

 
 
点击确定
 

 
 
此时我们的服务器也配置完毕。
 
 
现在开始在我们本机的VS中调试服务器上的站点。
打开我们的项目,在选择工具菜单栏下的附加到进程,选择远程方式进行传输
 

 
 
 
点击查找搜索网络中的主机
 
 

 
选择我们的服务器主机进行连接,附加我们要调试的工作进程
 
 
 
 
 
查看服务器上msvsmon程序的状态,可以看到连接成功
 

 
 
然后我们在VS中设置断点,并且访问我们的服务器站点
 

 
 
 
此时可以看到我们VS中的断点被没有中断,这是为什么呢?
 
我们查看一下输出窗口可以看到这么一条信息
 

 
 
我们的当前站点编译成的程序集的并没有加载到相应的PDB文件,所以无法进行调试。
 
此时我们就需要获取到程序集相应的PDB文件
 
 
这里我们可以直接将服务器上的发布文件直接拷贝到我们本地,并且对VS进行如下的配置
 
首先打开工具菜单栏中的选项,展开调试节点下的符号,添加一个新的符号文件位置,位置直接指向我们从服务器上拷贝下来的文件中的bin目录,
如果有多个站点就添加多个位置信息,也可指向远程服务器的共享目录位置,这里可能出现其他问题,暂不细述
 

 
 
 
接着我们展开调试选项中的常规节点,取消常规中要求源文件与原始版本完全匹配选项。因为我们的开发代码总会与发布的存在差异

 
 
再次附加进程看到输出中已加载符号
 

 
 
最后我们在访问我们服务器上的站点,可以看到断点被成功中断
 

 
 
 
注意:
        1、在远程调试时服务器网站的访问会被中断,所以多个请求会导致调试结果出现差异
        2、虽然我们可以新建多个msvsmon的实例进行运行,但是一个工作进程同时只能被一个用户附加
        3、缺失的PDB文件不能直接指向我们的开发项目中的PDB所在bin目录,因为项目代码往往与发布站点的代码有所差异,
            因为导致本地开发代码生成的PDB文件与发布站点的程序集无法正确匹配,因为PDB文件也无法被正确加载
        4、可以使用网络共享或其他方式将服务器站点上的PDB文件公开出来,本地的VS获取PDB的位置可以直接指向它,因为PC与
            网络环境的差异,此项尝试可能会存在问题,需要耐心测试(经测试,网络通畅下,正常可用)
        5、本文的示例使用的是无验证方式的远程调试,存在一定的安全问题,也可以在msvsmon使用包含身份验证的远程调试,
            在VS使用附加进程的方式时,直接使用默认的传输方式即可,此时需要进行计算机账户的配置
 

在VisualStudio中远程调试IIS站点的更多相关文章

  1. 使用vs远程调试iis站点

    在vs安装目录下IDE文件夹下的Remote Debugger 复制到服务器运行 启动msvsmon.exe msvsmon.exe启动后设置远程连接不验证身份 vs中 调试→附加到进程 ip+端口访 ...

  2. 修改host文件实现自定义域名和iis站点本地调试

    修改host文件实现自定义域名和iis站点本地调试 自定义域名:myhost.com windows版本:win7 iis版本:iis7.x vs版本:vs2010 现在开始动手设置了: 一.修改ho ...

  3. VS中附加进程的方式调试IIS页面,以及设置断点无效问题解决

    以前调试网站的时候都习惯是直接在解决方案中右键调试——启动新实例,后来发现这样的缺点有: 1.启动比较慢: 2.一些浏览器的request参数无法带入: 3.不特殊指定启动url的话,VS会将页面加载 ...

  4. [2017-08-09]一则使用WinDbg工具调试iis进程调查内存占用过高的案例

    最近遇到一个奇葩内存问题,跟了三四天,把Windbg玩熟了,所以打算分享下. 症状简介 我们团队的DEV开发环境只有一台4核16G的win2012r2. 这台服务器上装了SqlServer.TFS(项 ...

  5. 【转】一则使用WinDbg工具调试iis进程调查内存占用过高的案例

    最近遇到一个奇葩内存问题,跟了三四天,把Windbg玩熟了,所以打算分享下. 症状简介 我们团队的DEV开发环境只有一台4核16G的win2012r2.这台服务器上装了SqlServer.TFS(项目 ...

  6. 记一次IIS站点出错的解决过程

    记一次IIS站点出错的解决过程 以前一直都是人家用着系统出问题了反馈过来这边改,没想到这回就发生在自己使用的过程中 问题经过 我正在执行一个操作,保存了没有返回提示,打开浏览器控制台查看网络,请求返回 ...

  7. VS中发布并调试IIS程序

    1.创建本地IIS站点 2.修改配置 .net framework 右击项目属性,服务器修改为本地IIS,并且项目URL修改为相对应的站点即可 .net core 右键属性,进入调试栏新建一个配置 选 ...

  8. 在IIS站点中Adomd.net集成认证账号问题

    最近在做一个Asp.net项目的时候 ,在C#代码里面用到了Adomd.net去连接SSAS服务器做MDX查询,开发完成后将Asp.net代码部署到IIS后发现Adomd.net老是连接不到SSAS服 ...

  9. 使用awstats分析iis站点的日志

    环境:win7 + iis7 + perl(ActivePerl-5.20.1.2000) + awstats 7.3 一.找到iis日志所在目录 建议全部都打勾 二.安装perl AWStats是p ...

随机推荐

  1. 【Qt开发】QDate类

    QDate为开发者提供日期的类,函数也很丰富 常用方法介绍 1.QDate addDays(qint64 ndays) const 当前日期添加n天,n可以为负 2.QDate addMonths(i ...

  2. devise在引擎中安装后,设置访问自定义页面

    rails generate devise:views User Turn on scoped_views in config/initializer/devise.rb view config.sc ...

  3. 使用github oauth 出现 OpenSSL::SSL::SSLError - SSL_connect SYSCALL returned=5 errno=0 state=SSLv2/v3 解决

    A top level initializer is highly recommended to use: conf/initializer/tls_settings.rb OpenSSL::SSL: ...

  4. 剑指offer(26-30)编程题

    二叉搜索树与双向链表 字符串的排列 数组中出现次数超过一半的数字 最小的K个数 连续子数组的最大和 26.输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表.要求不能创建任何新的结点,只能调整 ...

  5. *2-3-7-加入field_automation机制

    在2.3.3节中引入my_mointor时,在my_transaction中加入了my_print函数: 在2.3.5节中引入reference model时,加入了my_copy函数: 在2.3.6 ...

  6. uvm_config_db在UVM验证环境中的应用

    如何在有效的使用uvm_config_db来搭建uvm验证环境对于许多验证团队来说仍然是一个挑战.一些验证团队完全避免使用它,这样就不能够有效利用它带来的好处:另一些验证团队却过多的使用它,这让验证环 ...

  7. python实例:在列表,字典,集合中,根据条件筛选数据

    1. 从列表中过滤掉 负数 from random import randint # 随机生成列表 data = [randint(-10, 10) for _ in range(10)] print ...

  8. HTTPS的误解(一)

    大家好,SSL证书越来越受到人们的关注,经常有人会说HTTPS只有登录页才需要,而且会使网站速度下降,易维信(EVTrust)给大家澄清了一些HTTPS协议容易产生误解的地方,增长一些网页加密通信的知 ...

  9. Android studio的调试方法

    1. DDMS DDMS 全称 Dalvik Debug Monitor Service, dalvik虚拟机调试监控服务. 可以进行的操作有:为测试设备截屏,查看特定行程中正在运行的线程以及堆信息. ...

  10. VS中自定义C#快速简写代码

     首先在VS中找到工具——代码片段管理器——语言选择(CSharp)——Visual C#——赋值路径——根据路径找到对应的代码片段用VS打开 修改: Title——标题 ShortCut——缩写 D ...