如何在本地调试服务器上的站点?
 
如果要在本地调试服务器上的站点我们需要用到一个远程调试工具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. 西蒙布朗-C4模型

    关于 C4 模型的一些解释 C4 模型是来自 software architecture for developers 一书的定义,指的是 Context 上下文场景.Container 容器.Com ...

  2. JDBC连接Greenplum数据库,封装了增删改查

    要启动好gp服务,再尝试连接 192.168.94.135是主节点(master)的ip 驱动Jar包在官网获取 嫌麻烦,可以直接用我在网盘分享的Jar包,版本较老 链接:https://pan.ba ...

  3. GitHub和git和repo的使用

    1. GitHub的使用 https://github.com/maogefff/GitHub-git-repo 2. git的使用 https://github.com/maogefff/GitHu ...

  4. IOS7 导航栏适配二

    ios7下的app都是全屏的,意思就是所有控制器的view默认都是从  屏幕的 (0,0)开始. 这时候用到导航栏时,往往会出现被导航栏挡住情况. 最明显的是用到tableView时,第一行的数据会被 ...

  5. python模块学习第 0000 题

    将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似于微信未读信息数量那种提示效果. 类似于图中效果: 好可爱>%<! 题目来源:https://github.com/Yixiao ...

  6. 把IP字符串转换为IPv4标准格式

    把IP字符串转换为IPv4标准格式,如一个IP为127.0.0.1转为127.000.000.001格式? 即是说“点”分隔的数据不够三位数字长度,转换为三位数字长度. Insus.NET有尝试写了一 ...

  7. ASP.NET中让图片以二进制的形式存储在数据库中

    今早有个网友问到我这问题,以前我都是直接在数据库中存文件名的,还没有试过存储整张图片到数据库中,上网搜索了一下,自己又测试了一番,代码如下:建立保存图片的表的SQL语句: USE [niunantes ...

  8. 述一个程序员的技能:系统安装(win7版)idea配置

    idea配置:http://www.phperz.com/article/15/0923/159043.html 作为一名计算机专业出身的程序员,组装电脑和安装系统是基本技能.打造一个安全稳定高效的开 ...

  9. 撩课-Java每天5道面试题第12天

    91.如何提升数据查询的效率? 1.首先检查表的结构是否合理, 因为采用多表查询的时候, 看主外键的引用关系是否适当. 如果不适当则重新设置表结构. 如果是应用中的系统, 则不需要更改表的字段, 只更 ...

  10. csu 1356 Catch bfs(vector)

    1356: Catch Time Limit: 2 Sec  Memory Limit: 128 MBSubmit: 96  Solved: 40[Submit][Status][Web Board] ...