`
javatoyou
  • 浏览: 1084966 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

无法在服务器上启动调试的解决办法

 
阅读更多

:无法在服务器上启动调试(Unable to start debugging on the Web server)

原因1:IIS的应用程序设置并没有使用集成windows认证,打开windows集成认证选项

原因2:检查IIS中的"保持HTTP连接"选项,确保该选项为选中状态

消息2:您没有在服务器启动调试的权限(You do not have permission to debug the server)

原因1:确保windows集成认证选项打开
原因2:如果您打开了windows集成认证选项的话,确保您的用户帐号具有对IIS目录的完全控制权
原 因3:如果您的Web项目使用额完整的机器名作为项目名称(machinename.domainname.something)的话,那么这个Web站 点就会被认为是一个Internet站点,所以IE的缺省设置就会影响登陆状态,在这种情况下,您需要在IE设置的Internet区域中允许您使用当前 用户帐户登陆;这并不是IE的缺省设置,所以您最好使用你的机器名称来作为您项目的名字!


消息3:当发送HTTP调试请求时发生服务器端错误(Server side-error occurred on sending debug HTTP request)

原因1:您的Web应用程序可能没有应用程序名称,解决这个问题,您需要使用IIS MMC为您的Web项目分配一个应用程序名称;

原因2:如果您正在使用NTFS文件系统的话,确保aspnet帐户对于wwwroot或您的应用程序文件夹具有适当的读写权限

消息4:当前项目没有被配置为允许调试(The project is not configured to be debugged)

对于这个错误,您需要确保您的Web被配置为调试状态,完成这项工作,您需要在web.config中设置debug=true
原因1:asp.net 调试在项目属性中没有被开启;

原因2:请确认所期望的DLL已经被载入对应的调试符号文件,您可以在模块窗口中检查

消息5:调试器可能没有被安装(The debugger is not properly installed)

如果遇到这样的问题,检查控制台应用程序项目中的调试功能,如果控制台应用程序项目中显示图示的错误信息的话,说明您的.net framework并没有被完全的安装

您需要执行命令"regsvr32 mscordbi.dll"手动注册您的"mscordbi.dll"文件

消息6:服务器不支持asp.net 或 ATL server 应用程序调试

如果你正使用WindowsXP Pro或是Win2000 Pro的话,您可能要思考一下您安装VS.Net的顺序问题;您如果在安装Vs.Net之后才安装IIS的话,你就会遇到这个错误,在这种情况下,您需要 使用命令"aspnet_regiis.exe –i"来注册"aspnet_isapi.dll"

消息7:访问被拒绝。检查您是否是系统管理员或...组的成员(Access is denied. Verify that you are an administrator or a member of ...)

您的帐户可能不是本机Debugger Users组的成员,将您的帐户加入该组可以解决这个问题;

消息8:无法启动ASP.NET或ATL Server调试

原因1:您可能安装了IIS Lockdown,如果是这样的话,找到urlscan.ini文件,在[allowverbs]节中加入DEBUG(大小写敏感)字段
原因2:如果您正使用域控制器(Domain controller)作为您的服务器,并且您的项目使用了机器器名而没有使用完整的域名的话,您肯能需要改变您项目的Url为使用完整的域名
原 因3:如果您的IIS被设置为使用专用的IP作为Web站点的定位标志(Web site identification)的话,你肯那个就会遇到这个错误;在这种情况下,您需要改变您的项目名字为直接使用IP地址作为项目名。对于已经存在的项 目,你需要编辑.sln文件和.webinfo文件来改变项目的名字为IP地址
原因4:web.config文件中的<httpRuntime maxRequestLength="#########" />值太大。缺省单位是Kbyte,不是byte,所以如果您使用了错误的单位来改变这个数值的话,可能会导致调试错误!

消息9:访问被拒绝

原因:您可能是Debugger Users组中的成员,但是你没有调试aspnet工作进程的权限,因为您并不是aspnet用户帐户或Administrator组中的成员。将您的用户帐户加入到机器的Administrator组中以解决该问题。

无法对于一个Included File进行调试
ASPX中,您无法调试一个included file,一个included fie通常是您从asp项目转向ASPX的结果,如果您使用<!--#include file = "file name"-->包含文件,您可能不能正确的调试那个包含文件,您需要使用<!--#include virtual="file name"-->来代替。

在改变了您的密码时,您需要为使用ASP.NET调试进行log off/log in

在安装了Win2000 SP4后,ASP.NET调试无法工作,报错:"访问被拒绝"
解决办法是使用命令"regsvr32 –i aspnet_isap.dll"重新注册aspnet_isapi.dll

只能在页面第一次被加载的时候停在断点处(hit breakpoint)
对于这个问题可能有几种不同的原因,但是最有可能的原因应该是您 在web.config文件中使用了page cache选项;如果您在web.config中看到了如<add key="<your web project name".Web.EnablePageCache" value="True" />的配置,您需要设置value为False来关闭Web页面缓存,在改变该设置之后,您应该就可以停在断点处了;

您需要共享一个Web服务器来进行调试,但是又不想其他用户能够在该机器上进行管理
在VS.Net中,有两件事情决定是否一个用户可以进行调试,一是Debugger Users组,令一个是用户权限,如administrator,power user 或者 SEDebug
Debugger Users组决定是否用户可以访问VS调试模块(主要是MDM-Machine Debug Manager,VS的一个部分),所以作为该组成员意味着您获得了访问MDM的权限,所以您可以调试您的开放进程(open process)并且可以看到您机器上的进程列表.
但在这之后,您是否可以调试其他用户的进程就决定于您的权限,举例说明:如果您想要调试其他用户的自然进程(native process),您就需要具有SEDebug权限。对于其他用户的托管进程(Managed Process),您需要是该机器的管理员!
由于这样的约束,在这样的情况下,学生们就必须被提升为管理员,如果不这样做的话ASP.NET工作进程在缺省情况下就无法被调试。


常规调试(General Debugging)
这些情况是基于控制台应用程序类型的

消息1:无法启动调试

这个问题时因为没有正确注册mscordbi.dll造成的,重新注册文件就可以解决这个问题

消息2:无法启动调试,访问被拒绝

确保Machine Debugger Manager服务被正确启动,并且您是Debugger Users组中的一员,或是administrator

我可以启动托管调试(Managed debugging),但是PDB并没被加载,所以我无法设置任何断点
如果调试器被正确运行,但是您并没有停在任何断点的话,您可能需要检查diasymreader.dll的安装情况,这个文件可能没有被注册,您需要这样做:
regsvr32 <path to DLL>/diasymreader.dll

托管调试无法工作
您使用CLR模式附加到一个自然进程在该进程还没有创建一个CLR对象时,托管调试就无法工作
解决1:在CLR代码已经被该进程使用后再附加到该进程
解决2:使用InterOp模式附加到该进程,在这种情况下,您不需要在CLR代码被调用以后再附加到该进程

托管调试器无响应
当您针对托管代码启动调试时,调试器无响应
解决:确认 .NET Framework Support 服务被停止并且禁用(仅停止该服务是不够的)
如果您并没有.NET Framework Support 在运行的话,禁止IIS admin服务

对C# 代码使用 Stepping 结果并不正确
看看以下代码:
string someStr;
someStr = "SomeValue";
if(someStr == null)
Console.WriteLine("what's up?");

try
{
}
catch(Exception e)
{
}

如果您对这段代码使用Step的话,您会发现当您进入"if"语句的时候,指令指针(instruction pointer)会移动到Console.WriteLine("what's up?");这句
这并不是调试器的bug,但是这是针对try catch块调试信息的一支问题。看看以下该例子的反编译代码:
if(someStr == null)
0000002a cmp dword ptr [ebp-18h],0
0000002e jne 0000003C

Console.WriteLine("what's up?");
00000030 mov ecx,dword ptr ds:[01C50070h]
00000036 call dword ptr ds:[02F0257Ch]
0000003c jmp 00000048

catch(Exception e)
0000003e mov dword ptr [ebp-1Ch],eax
00000041 call 762C0846
00000046 jmp 00000048

}
00000048 nop

当value并不为真的时候指令指针移动到了0000003c jmp 00000048这一行,但是这行错误的对应了if语句的语句块。所以当执行结果正确时,我们看到的调试过程并不正确!

因果调试:在Web Service 客户端和Web Service之间进行步进(Stepping)

无法从Web Service客户端进入Web Service进行调试
缺省设置下并不允许您从Web Service客户端进入Web Service。
ASPNET工作进程在"aspnet"或"network service"用户帐户下工作,这些帐号并不具有通过DCOM访问MDM的权限。所以,您需要把这些帐户增加进Debugger Users组中

在允许扮演Web Service(impersonation of Web service)之后,您无法做到因果步进
您需要做以下的事情来纠正客户端与服务之间的步进
1.关闭IIS的匿名访问
2.改变客户端代码,设置一个安全证书(credential)给WebService
Service1 obj = new Service1();
obj.Credentials = System.Net.CredentialCache.DefaultCredentials;

调试器挂起
如果您的Web Service客户端代码运行在一个STA(Single Thread Apartment)模型下,并且它正

在等待一个异步调用的完成,如下代码所示:
Single Thread Apartment
Service1 obj = new Service1();
System.IAsyncResult ar = obj.BeginHelloWorld(new System.AsyncCallback

(Class1.Handle),obj);
while(ar.IsCompleted != true)
{
System.Threading.Thread.Sleep(1000);
}
那 调试器就会挂起。导致这种挂起的原因是因为一个调试器组件被在这个调试中的您的代码锁定了,解决方案1就是改变您的代码使用事件进行线程同步或是使用 mutext.其他的解决方案就是注销csm.dll.第二种解决方案就是禁用因果调试。你可能需要手动附加到aspnet_wp.exe来调试Web Service

分享到:
评论

相关推荐

    asp.net无法在Web服务器上启动调试项目的解决办法

    ### ASP.NET 无法在Web服务器上启动调试项目的解决办法 #### 问题背景 在开发过程中,我们经常会遇到ASP.NET应用程序无法在Web服务器上启动调试的问题。这种情况不仅影响开发效率,还可能消耗大量的时间来排查问题...

    无法在WEB服务器调试问题解决

    通过本文介绍的方法,开发者可以有效地解决在Web服务器上进行调试时遇到的各种常见问题。无论是配置错误、权限问题还是其他类型的故障,都有相应的解决策略。希望这些知识能够帮助开发者们提高工作效率,顺利完成...

    无法在Web服务器上启动调试.docx

    ### 无法在Web服务器上启动调试的关键知识点 #### 一、问题概述 在尝试通过Visual Studio等开发工具运行Web应用程序时,可能会...通过以上详细的步骤和注意事项,可以有效地解决“无法在Web服务器上启动调试”的问题。

    一些ASP.NET不能调试问题的解决办法

    有时在将项目从一台机器拷贝到另一台机器后尝试调试时,可能会遇到“无法在WEB服务器上启动调试,未将项目配置为进行调试”的错误。 **解决步骤:** 1. **配置IIS应用程序:** 在控制面板中打开“IIS互联网服务管理...

    售后服务无法在W服务器上启动调试.pdf

    当“售后服务无法在W服务器上启动调试”时,这通常意味着开发者在尝试远程调试Web应用程序时遇到了问题。以下是一些可能导致这种情况的具体原因和解决方法: 1. **集成Windows身份验证未启用**:调试失败的常见原因...

    解决vs2012 “无法启动已配置的visual studio开发web服务器”的解决办法

    解决VS2012中“无法启动已配置的Visual Studio开发Web服务器”的解决办法 在Visual Studio 2012中,开发者可能会遇到“无法启动已配置的Visual Studio开发Web服务器”的错误,这是一个常见的问题。这个错误可能是...

    无法连接到Visual Studio 的Localhost Web服务器的解决方法

    ### 无法连接到Visual Studio 的Localhost Web服务器的解决方法 在进行Web开发时,我们经常需要使用到本地Web服务器来进行测试与调试。对于使用Visual Studio作为开发环境的用户来说,有时可能会遇到无法连接到...

    web服务器远程调试配置方法

    Web服务器远程调试是开发过程中一个重要的技术手段,它允许开发者在服务器上运行的Web应用出现问题时,能够远程连接到服务器进行问题的定位和解决。本文介绍的是Tomcat、YAK和Weblogic这三种流行的Web服务器的远程...

    ASP调试服务器

    3. 启动调试:将ASP项目放在指定的文档根目录下,然后在调试服务器中启动调试。 4. 调试代码:在浏览器中访问ASP页面,当遇到错误或需要检查时,利用调试工具进行调试操作。 需要注意的是,由于ASP技术相对较老,...

    asp调试服务器(无需iis系统服务器)

    标题"asp调试服务器(无需iis系统服务器)"表明,我们有一个工具或方法可以让你在没有安装IIS的情况下调试ASP程序。这对于开发者来说是一个便利的功能,因为不是所有开发者都拥有或者能够配置完整的服务器环境,特别...

    java开发如何进行远程调试远程服务器,在远程服务器上设置断点

    要在远程服务器上启用Java远程调试,我们需要在启动Java应用时加入`-Xdebug`和`-agentlib:jdwp`参数。例如: ```shell java -jar -Xdebug -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8999 ...

    无法启动t-sql调试1

    1. **本地调试**:确保你尝试在服务器本机上进行调试,而非通过远程连接。远程调试可能需要额外的安全配置和网络设置,且在某些情况下不被支持。 2. **使用实例名**:在连接时,使用具体的SQL Server实例名,如`...

    无法启动IIs Express Web服务器 对应文件

    标题中的“无法启动IIS Express Web服务器 对应文件”指的是在尝试运行IIS Express时遇到的问题,这通常涉及到Web应用程序的开发环境。IIS(Internet Information Services)Express是一款轻量级的、易于使用的Web...

    asp.net调试器出现的问题及相关解决方法

    2. **您没有在服务器启动调试的权限**:确保当前登录用户拥有对IIS目录的完全控制权限,并且启用了Windows集成认证。如果使用的是机器全名作为项目名称,可能需要在IE的Internet区域设置中允许使用当前用户账户登录...

    分享解决vs2015调试asp.net程序出现无法连接到已配置的开发 Web 服务器问题

    下面说说解决方法。 先说网上不靠谱的方法,尽量不要相信,不过你可以试试 不靠谱方法1)什么关闭打开防火墙 不靠谱方法2)什么按照windwos日志缺失asp.net core.Dll文件,到什么网址下载此类安装文件等等, 不靠谱...

    vs2015程序出现无法连接到已配置的开发 Web 服务器问题

    针对上述问题,网上流传着各种解决办法,但并不是所有方法都可靠。例如,关闭防火墙可能会影响其他重要服务的安全性;根据Windows日志下载并安装DLL文件可能会引入潜在的安全风险;而修改注册表键值需要谨慎,一旦...

    asp迷你服务器当下目录 直接调试 非常方便

    在ASP迷你服务器的帮助下,开发者可以在本地计算机上直接调试和运行ASP应用程序,无需部署到远程服务器,大大提高了开发效率。 标题中的"asp迷你服务器当下目录 直接调试 非常方便"指的是使用特定的轻量级ASP服务器...

    VS2015 无法启动IIS Express Web服务器 缺少文件

    在使用Visual Studio 2015 (VS2015) 开发Web应用程序时,可能会遇到一个问题:在尝试运行项目时,系统提示“无法启动IIS Express Web服务器,缺少文件”。这个问题通常涉及到IIS Express配置、环境依赖或VS2015本身...

    解决“由于应用程序配置不正确,应用程序未能启动...”的问题

    例如,32位的应用只能在32位的Windows系统上运行,而64位的应用则需要64位的系统和相应的运行时库。 3. **修复或重新安装应用程序**:有时候,问题可能出在应用程序本身,尝试修复已安装的应用或者完全卸载后再重新...

Global site tag (gtag.js) - Google Analytics