VisualStudio使用IIS调试出错的处理方法

visual studio 2010 .net debug教程  在中,当网站需要进行web调试的时候,我们一般都是直接使用VS自带的Server进行调试,也就是直接F5就解决了问题,但并不是所有的问题都能在这种问题下解决,因此我们有的时候需要使用IIS作为Web Server来进行调试。使用IIS作为宿主的时候,很有可能不会像使用VS自带的Web Server调试来的顺利,而我最近的一次调试中就出现下面这个报错:

英文报错:Unable to start debugging on the web server.An authentication error occured while communicating with the web server.

中文报错:无法在WEB服务器上启动调试。

  当然,也可能出现其他的错误,经过摸索,问题解决了,在网上也看到有很多人在使用IIS6/7进行调试的时候出现不能调试的情况,为了让有同样的问题朋友们能够有一个更简单的处理方式,我将可能出现问题的地方做了个初步汇编,如果出现不能使用IIS来时,可以按照这个步骤来检查下开发机器上的配置是否正确。

No1. IIS配置检查

  要使用来调试网站,自然要在IIS中配置好网站,具体的配置请参见IIS新建网站的配置说明,这里不赘述。为了保证网站能够正常运行,你可能需要关注网站的权限问题。在网站能够正常运行的情况下,却无法使用Visual Studio进行Web Debugging的时候,请检查下面配置:

  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(经典模式)

上述问题配置配置如果设置之后,还是无法正常使用IIS调试VS中的Web程序,那么你可能还需要检查。

No2. 注册表配置检查[1]

  1. 禁用环回检查,将DisableLoopbackCheck 注册表项值置为1,Mitchell自己在Windows2003的问题就是这个方法解决的,注册表路径:
    开始--运行--输入:regedit--确定--路由到下面路径:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
    --右键:Lsa--新建--DWORD值--键入:DisableLoopbackCheck--右键:DisableLoopbackCheck--修改--数值数据框输入:1--确定。
    
    ##注意:
    操作后如果无法直接生效,可能需要重启系统。
  2. 指定主机名,将DisableStrictNameChecking注册表项值置为1,具体操作方法:
    开始--运行--键入:regedit--确定--路由到下面注册表项:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0
    --右键:MSV1_0--新建--多字符串值--输入:BackConnectionHostNames--确定--右键:BackConnectionHostNames--修改--数值数据--输入本地网站的主机名(可多个)--确定--重启IISAdmin服务

No3. Visual Studio配置检查,此项是在打开Web应用程序的时候配置检查:

  1. 检查Web应用程序中web.config中的debug是否值为true:
    <system.web>
        <compilation debug="true">
            <!--
            注意,compilation中debug属性要设置为true
            如果你没有设置true,在Debug模式下,启动调试,VS会提示你是否启用
            这个配置和IIS中配置启用调试是相同的.
             -->
        </compilation>
    </system.web>
    

一般检查完上面这些配置项,在Visual Studio中使用IIS调试应该就能正常进行了,如果还有问题,欢迎讨论。

 

附注:

[1]对于注册表设置项的操作可参见微软官方文档: http://support.microsoft.com/kb/896861

Friday, June 14, 2013 | .NET技术 其他技术

文章评论

No comments posted yet.

发表评论

Please add 8 and 8 and type the answer here:

关于博主

  一枚成分复杂的网络IT分子,常年游弋于电子商务,属于互联网行业分类中的杂牌军。当前正在待业中...