当我们使用Visual Studio调试(Debug)的时候,通常我们会选择VS自带的ASP.NET Developerment Server(也是默认选项),当第一次调试的时候(按F5或Ctrl+F5不调试直接打开),Developerment Server会自动分配一个未被占用的端口号,于是就有了类似这样的地址http://localhost:2131/
    这样做在大多数情况下不会有啥问题,但Developerment Server毕竟不是IIS,有一些操作无法达到和IIS一样的效果,譬如当我们使用某些方法获取客户端以及服务器IP的时候,使用Developerment Server就会出现一些混乱(又如有时候localhost无法匹配正确的域名格式)。这就造成了开发环境和使用环境不一致的情况。
    在这样种情况下,我们就需要使用IIS或者自定义的进程辅助调试,以确保开发环境模拟的真实性。
    依靠VS设置,使用IIS替代Developerment Server的方法大致有两种,列举如下(以VS2008英文版为例):
1、附加进程法。
    单击工具栏中的 Debug -> Attach to Process (调试 -> 附加到进程)
    在Available Processess(可用进程)中,找到IIS的进程w3wp.exe,单击"Attach(附加)"就行了。

2、设置服务器参数法。
    打开Web启动项目属性,在左侧打开Web页,在这里可以看到开始项目的行为设置以及“Servers”(服务器)这个选项。在“Servers”中,有一个"User Custom Web Server"(用户自定义服务器)的选项,选中它,并且在下面的URL中输入IIS中当前项目的URL即可(如http://127.0.0.1:8080/)。(在Servers中,我们同样可以修改localhost的端口号等等,这是一个很有用的选项。)
    在Servers中,同样有一个"Use Local IIS Web server"的选项,使用这个选项需要IIS6.0,如果您只安装了IIS7.0而没有安装IIS6.0兼容服务的话,使用User Custom Web Server是最佳的选择。
    以上设置完成之后,保存并启动调试就可以在IIS中调试了。

一般情况下,并不推荐随意使用这种方法,除非已经明确了这么做的目的。经本人充分实践,发现这两种方法都存在着一定的缺陷,比如“附加进程”的做法,当使用到多线程或者异步请求的时候,很可能造成跟踪丢失的情况(不会命中断点)。因此使用之前要先明确这么做的目的和可行性。

使用IIS配合VS调试的更多相关文章

  1. VisualStudio 2015 开启IIS Express可以调试X64项目

    现在项目开发时总有时需要在X64下开发,这样我们就需要IIS Express中调试.不要总是放在IIS中,在Attach这样好慢.   如果不设置直接调试X64的程序,我们有可能会受到以下类似的错误 ...

  2. 在IIS Express中调试时无法读取配置文件 错误

    在IIS Express中调试代码时,如果出现"无法读取配置文件"的问题(如图),这种情况是IIS Express的"applicationhost.config&quo ...

  3. 在IIS Express中调试时无法读取配置文件

    在IIS Express中调试代码时,如果出现“无法读取配置文件”的问题(如图),这种情况是IIS Express的“applicationhost.config”配置文件中的映射关系出了问题[ps: ...

  4. 开启IIS Express可以调试X64项目

    //来源:https://blog.csdn.net/ma_jiang/article/details/52679431 现在项目开发时总有时需要在X64下开发,这样我们就需要IIS Express中 ...

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

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

  6. [日常] windows下使用vscode配合xebug调试php脚本

    windows下使用vscode配合xebug调试php脚本 要下载有php_xebug.dll扩展的版本,最新版可能没有这个扩展,php7.3应该是有的,php7.3.4好像没有默认是不加载这个扩展 ...

  7. NETBEANS + XDEBUG + IIS PHP 代码 调试 DEBUG

    参考: http://domainwebcenter.com/?p=936 http://www.sitepoint.com/debugging-and-profiling-php-with-xdeb ...

  8. vs中附加IIS进程的调试方法

    项目运行以管理员的身份进行运行否则附加不进去:

  9. visual studio 2013 使用IIS Express附加调试MVC5

    1.如何找到调试的站点的进程[由于图片无法上传,就不上传图片了] 2.vs运行的时候,在状态栏会存在一个IIS Express 进程,点击显示所有的应用程序,找到想要调试的程序的PID; 3.附加调试 ...

随机推荐

  1. CSS选择器,标签限定

    例子:ul#nav, ul li#nav和 #nav ul, #nav ul li 注意空格,没有空间隔开的就可以理解为限定 区别 1.ul#nav:表示id='nav'的ul:(ul限定#nav标签 ...

  2. 简单易用的Rest

    今天碰巧,用到了淘宝的在线IP地址查询的Rest API,它提供接口给用户查询IP地址的归宿地.数据库比较庞大,准确性也比较高.地址为:http://ip.taobao.com/instruction ...

  3. Winform窗口弹出位置控制

    窗体的弹出位置可以由属性StartPosition来指定,默认值有: Manural 自定义,由属性Location指定: CenterScreen 屏幕中央: WindowsDefaultBound ...

  4. C# 多线程基础

    多线程 无论您是为具有单个处理器的计算机还是为具有多个处理器的计算机进行开发,您都希望应用程序为用户提供最好的响应性能,即使应用程序当前正在完成其 他工作.要使应用程序能够快速响应用户操作,同时在用户 ...

  5. SQL技术内幕一

    范式:关系模型的规范化规则. Codd提出的三个数据库范式: 1. 第一范式 第一范式要求表中的每一行都是必须是唯一的.因为关系型数据库是基于集合论的,而集合的定义中,要求每一个元素都是唯一的(在关系 ...

  6. [C和指针] rearrange.c

    C和指针_程序1.1_重排字符 /* ** 这个程序从标准输入(键盘)中读取输入行并按需求处理后在标准输出(屏幕)中打印, ** 每个输入行的后面一行是该行按需求处理后的输出内容. ** ** 输入的 ...

  7. UILocalNotification本地通知

    // 执行通知一定要退出应用或挂起应用(进入后台)才能收到通知. 1.在iOS8及其以后版本中使用本地消息需要先获得用户的许可,否则无法成功注册本地消息.因此,我们将询问用户许可的代码片段添加到了ap ...

  8. 洛谷 P1064 金明的预算方案

    题目描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N元钱就行”.今 ...

  9. ee_15_mvc_db_page----demo---bai

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"% ...

  10. 数据结构---顺序表(C++)

    顺序表 是用一段地址连续的存储单元依次存储线性表的数据元素. 通常用一维数组来实现 基本操作: 初始化 销毁 求长 按位查找 按值查找 插入元素 删除位置i的元素 判空操作 遍历操作 示例代码: // ...