zoukankan      html  css  js  c++  java
  • VS启用IIS调试的方法及可能碰到的问题。

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

    这是由于开发机和服务器环境不一样造成的, 所以开发时要尽可能的模拟真实性。  这时候, 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_MACHINESYSTEMCurrentControlSetControlLsa
    --右键:Lsa--新建--DWORD值--键入:DisableLoopbackCheck--右键:DisableLoopbackCheck--修改--数值数据框输入:1--确定。
    
    ##注意:
    操作后如果无法直接生效,可能需要重启系统。

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

    开始--运行--键入:regedit--确定--路由到下面注册表项:
    HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlLsaMSV1_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属性改成"/"
  • 相关阅读:
    (算法)Hanoi Problem汉诺塔问题
    (剑指Offer)面试题48:不能被继承的类
    (剑指Offer)面试题47:不用加减乘除做加法
    (剑指Offer)面试题46:求1+2+3+....+n
    (剑指Offer)面试题45:圆圈中最后剩下的数字
    程序员应该知道的15件事 在生活与工作中用他们来警惕自己
    基于REST架构的Web Service设计
    互联网上五个最高级的搜索引擎
    哈佛经济学家关于工作效率的意外发现
    列举一些常见的系统系能瓶颈 Common Bottlenecks
  • 原文地址:https://www.cnblogs.com/jackrebel/p/4259018.html
Copyright © 2011-2022 走看看