• IIS配合VS调试


    当我们使用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中调试了。

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

    ps:可能遇到的问题 无法在web服务器上启动调试。调试失败,因为没有启用集成windows身份验证

    解决:打开IIS,在IIS里查看站点信息(属性),选择“目录安全性”,点击“匿名访问和身份验证控制”右边的“编辑..”,选中“集成Windows身份验证”选项即可

  • 相关阅读:
    docker 基于现有镜像修改后保存,上传私有仓库
    新装docker 从本地仓库下载
    decode_json 必须是unicode形式的字符
    浅谈消息队列的原理及优势
    javascript基础修炼(10)——VirtualDOM和基本DFS
    消息队列属性及常见消息队列介绍
    【Angular专题】——【译】Angular中的ForwardRef
    单体应用微服务改造实践
    SpringCloud微服务2-服务提供者和消费者
    基于CSE的微服务工程实践-Native API先行
  • 原文地址:https://www.cnblogs.com/shenqiboy/p/2414004.html
Copyright © 2020-2023  润新知