经常有这种情况, 开发机本地正常, 但是一旦发布到服务上后, 就出现各种问题。

这是由于开发机和服务器环境不一样造成的, 所以开发时要尽可能的模拟真实性。  这时候, VS的这个功能就帮大忙了。

如何启用IIS调试

     第一种: 附加进程法

1.  在IIS中建立站点直接指到程序所在文件夹(或者路径指到程序发布的文件夹);

    2.  对要测试的页面设置断点,然后选择”调试”->”附加到进程”,在进程中选择w3wp.exe进程(需要先打开需测试的页面);如果找不到w3wp.exe进程,在进程列表的下面,有个show processes in all sessions,把它勾上就能看到了。

     第二种:设置服务器参数法

  打开Web启动项目属性,在左侧打开Web页, 在这里可以看到开始项目的行为设置以及“Servers”(服务器)这个选项。在“Servers”中,有 一个"User Custom Web Server"(用户自定义服务器)的选项,选中它,并且在下面的URL中输入IIS中当前项目的URL即可(如http://www.8kmm.com:8080/)。(在Servers中,我们同样可以修改localhost的端口号等等,这是一个很有用的选项。)

  在Servers中,同样有一个"Use Local IIS Web server"的选项,使用这个选项需要IIS6.0,如果您只安装了IIS7.0而没有安装IIS6.0兼容服务的话,使用User Custom Web Server是最佳的选择。

以上设置完成之后,保存并启动调试就可以在IIS中调试了。

可能碰到的问题及经验。

如果调试出错的话,一项一项的比对:

    1. 网站配置项中,网站标签下的连接是否启用了保持HTTP连接项,IIS6的操作路径:

      IIS6管理器中右键当前调试网站--属性--网站--连接--保持HTTP连接
    2. 检查是否启用Windows身份验证。IIS6路径:
      IIS6管理器中右键当前调试网站--属性--目录安全--身份验证和访问控制--编辑--用户访问需经过身份验证--集成Windows身份验证
    3. 如果是ASP这样的网站也许你要启用在服务端进行ASP调试的选项,路径为: 
      IIS6管理器中右键当前调试网站--属性--主目录--应用程序设置--配置...--调试--调试标志--启用ASP服务器端脚本调试 && 启用ASP客户端脚本调试
    4. 启用IIS中ASP.NET的调试项,这项也可以从web.config中设置,路径为:
      IIS6管理器中右键当前调试网站--属性--ASP.NET--Edit Configuration(编辑配置)--应用程序--公共编译、页和运行时设置--勾选:启用调试--确定
    5. 如果你是IIS7,可以尝试启用IIS7中的Class .NET AppPool,经典的.NET应用程序池,路径:
      当前调试站点--高级设置--应用程序池--Class .NET AppPool(经典模式)
    6. 系统注册表检查

6.1   禁用环回检查,将DisableLoopbackCheck 注册表项值置为1,Mitchell自己在Windows2003的问题就是这个方法解决的,注册表路径:

开始--运行--输入:regedit--确定--路由到下面路径:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
--右键:Lsa--新建--DWORD值--键入:DisableLoopbackCheck--右键:DisableLoopbackCheck--修改--数值数据框输入:1--确定。 ##注意:
操作后如果无法直接生效,可能需要重启系统。

6.2   指定主机名,将DisableStrictNameChecking注册表项值置为1,具体操作方法:

开始--运行--键入:regedit--确定--路由到下面注册表项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0
--右键:MSV1_0--新建--多字符串值--输入:BackConnectionHostNames--确定--右键:BackConnectionHostNames--修改--数值数据--输入本地网站的主机名(可多个)--确定--重启IISAdmin服务.
      7. 检查Web应用程序中web.config中的debug是否值为true:

经验之谈
1. 无法进入断点: web项目的属性页面调试器==》启用本机代码, 如需要其它的, 自己看。   2. 第一种附加进程法, 当使用到多线程或者异步请求的时候,很可能造成跟踪丢失的情况(不会命中断点), 这时该用第二种。   3. “启用编辑并继续”打上勾,就方便多了。   4. 有些web项目, 带了路径, 比如:“E:\website\”,  这时调试时路径可能变成:“http://localhost:2435/website/”.  图片等资源文件地址可能就有问题。 这时候, 选中web项目==》属性窗口==》将Visual path属性改成"/"

VS启用IIS调试的方法及可能碰到的问题。的更多相关文章

  1. VS~通过IIS网站启用"域名"调试

    在我们开发网站时,对某些信息进行序列化时,通常使用session,cookies,nosql等技术,而为了安全,我们在服务器上很多情况都做了防止盗链的设计,这给本机调试带来了不便,因为,本机都是以lo ...

  2. C# -- HttpWebRequest 和 HttpWebResponse 的使用 C#编写扫雷游戏 使用IIS调试ASP.NET网站程序 WCF入门教程 ASP.Net Core开发(踩坑)指南 ASP.Net Core Razor+AdminLTE 小试牛刀 webservice创建、部署和调用 .net接收post请求并把数据转为字典格式

    C# -- HttpWebRequest 和 HttpWebResponse 的使用 C# -- HttpWebRequest 和 HttpWebResponse 的使用 结合使用HttpWebReq ...

  3. IIS调试ASP.NET Core项目

    IIS调试ASP.NET Core项目 新建一个ASP.NET Core Web项目,选择API模板或随便一个模板都行 新建一个名为localhost的发布(没试过远程主机,或许也可以),主要设置如下 ...

  4. VSCode调试Html中的脚本 vscode前端常用插件推荐,搭建JQuery、Vue等开发环境 vsCode 添加浏览器调试和js调试的方法总结 VS Code - Debugger for Chrome调试js

    一.背景 使用Visual Studio Code写了一个简单的Html页面,想调试下其中script标签里的javascript代码,网上查了一通,基本都是复制粘贴或者大同小异的文章,就是要安装De ...

  5. IIS调试技术之 Debug Diagnostic (调试诊断)

    IIS 调试技术之 Debug Diagnostic (调试诊断) 1      概述 1.1  文档简介 系统出现错误或崩溃,免不了要进行调试.调试能进行的前提是错误能重现,但实际上要重现一个错误有 ...

  6. IDA 调试 Android 方法及简单的脱壳实现

    IDA 调试 Android 方法及简单的脱壳实现 标签: android原创逆向调试dalvik 2016-05-24 14:24 9286人阅读 评论(3) 收藏 举报 分类: 原创(25) An ...

  7. 启用IIS Express SSL(Https)的注意事项

    2年前搞国外的信用卡支付对接,必须用SSL方式调用第三方支付公司的接口,本地调试需要启用IIS Express的SSl,最近又搞类似需要SSL的项目,忘记怎么设置的了,本以为直接将原来的http后面加 ...

  8. 无法启用web调试服务器

    场景:vs2005   webservice 项目属性中:web : 使用IIS web  服务器  http://localhost/WSMA   --- >自动创建虚拟目录 点击调试的时候F ...

  9. Vue生产环境调试的方法

    vue 生产环境默认是无法启用vue devtools的,如果生产应用出了问题,就很难解决.. 原理 先说下vue如何判断devtools是否可用的. vue devtools扩展组件会在window ...

随机推荐

  1. POJ 1978

    #include <iostream> #define MAXN 55 using namespace std; int _m[MAXN]; int tem[MAXN]; void cop ...

  2. 深入浅出ES6(十四):let和const

    作者 Jason Orendorff  github主页  https://github.com/jorendorff 回溯到1995年,当Brendan Eich在设计第一版JavaScript时, ...

  3. SQL 递归查询

    WITH B (FATHER,SON,ID,ALLINFO) AS (SELECT RTRIM(LTRIM(CHAR(A.ID)))|| CHAR(ROW_NUMBER() OVER(PARTITIO ...

  4. linux查找有用日志常用技巧

    对于高级测试人员来说.需要有快速定位问题的能力,而查看有效的日志就是其中有效的方法之一,然而服务器上的日志多如牛毛,如何快速从中找出所需信息非常重要,以下是我在工作中用到的查找日志的简单命令,希望对大 ...

  5. sql 数据库换行

    制表符 CHAR(9)  换行符 CHAR(10)  回车 CHAR(13) 

  6. mysql新建用户本地无法登录

    mysql新建用户本地无法登录 MySQLDebianGoogleAccess  出此是用mysql,因为root权限过高,所以新建一用户appadmin,权限仅为要用到的数据库.创建语句如下:gra ...

  7. 关于HTTP协议的学习

    HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送WWW方式的数据,关于HTTP 协议的详细内容请参考RFC2616.HTTP协议采用了请求/响应模型.客 ...

  8. 一个简单的ObjC和JavaScript交互工具

    https://github.com/changjianfeishui/XBWebBridge ObjectiveC与Js交互是常见的需求,可对于新手或者所谓的高手而言,其实并不是那么简单明了.这里只 ...

  9. NVDIMM典型应用及技术发展

    1.典型应用之全系统保护 全系统保护采用超级内存作为系统主存.在系统异常掉电时,将整个系统的运行状态(包括CPU,芯片组,其他外设以及所有进程的信息)存入超级内存.在供电恢复后,利用超级内存中的数据, ...

  10. Objective-C:自定义Block函数

    Block函数是一种类似于函数指针的函数,程序员只需要把需要操作的代码封装到定义的block中即可,以后需要使用时,直接调用,非常方便.... 举例如下: 第一种形式:自定义一个无返回值而且无参数的b ...