如何在本地调试服务器上的站点?
 
如果要在本地调试服务器上的站点我们需要用到一个远程调试工具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. [中英对照]Booting Process in Linux RHEL 7 | Linux RHEL 7启动过程

    Booting Process in Linux RHEL 7 | Linux RHEL 7启动过程 In this post, I will guide you booting process in ...

  2. 14 线程间协作的两种方式:wait、notify、notifyAll和Condition

    原文链接:http://www.cnblogs.com/dolphin0520/p/3920385.html 在前面我们将了很多关于同步的问题,然而在现实中,需要线程之间的协作.比如说最经典的生产者- ...

  3. Bootboxjs快速制作Bootstrap的弹出框效果

    Bootboxjs是一个简单的js库,简单快捷帮你制作一个Bootstrap的弹出框效果. 一.简介 bootbox.js是一个小的JavaScript库,它帮助您在使用bootstrap框架的时候快 ...

  4. Digitale Logik

    1.Zahl System und Code System 1.1 Die Rechnung des Ergänzungscode 1.2 Manche häufig verwendet Code 1 ...

  5. JavaScript的柯里化函数

    柯里化,或者说部分应用,是一种函数式编程的技术,对于熟悉以传统方式编写 JavaScript 代码的人来说可能会很费解.但如果使用得当,它可以使你的 JavaScript 函数更具可读性. 更具可读性 ...

  6. lodop判断是否打印成功

    需要引用js <script src="js/jquery-3.3.1.js"></script> <script src="js/Lodo ...

  7. Html.DropDownList传值

    Html.DropDownList传值: 可以传入明确的IEnumerable<SelectListItem>,也可以通过ViewBag或者ViewData隐式地传入,前提是需要相同的名称 ...

  8. [javaSE] GUI(事件监听机制)

    外部动作——>事件源(组件)——>事件对象——>监听器 获取Frame对象,与上节一样 调用Frame对象的addWindowListener()方法,参数:WindowListen ...

  9. block中self关键字的使用-防止self 被retain一次

    在代码块中使用对象的成员时(成员变量是属性strong,MRC估计是retain时效果一样,使用方法时也一样): 警告: capturing self strongly in this block i ...

  10. java技术秘籍 转摘