使用https时,ASP.NET调试器会出现http错误

时间:2014-10-30 01:09:55

标签: asp.net debugging syntax-error

我真的非常需要你的帮助,因为我的程序遇到了非常不寻常的问题:

  1. 我在尝试在本地IIS Server 7.5上调试ASP.NET或MVC应用程序时收到此错误: "无法在Web服务器上启动调试。由于语法无效,服务器无法处理调试请求。 "

    enter image description here

  2. 我直截了当地尝试了谷歌中可以找到的所有解决方案。我花了12个小时试图解决这个问题。没有运气。

  3. 只有这个地址出现错误:http:// localhost / AspDemo不是这个:https:// localhost / AspDemo。基本上,如果我把https而不是http。

  4. ,我可以像往常一样进行调试
  5. 我的本​​地IIS服务器上禁用了https :),我的意思是将其设置为忽略。

  6. 此外,我可以在IIS控制面板中使用BOTH协议打开我的网站

  7. 如果我在Visual Studio的属性中禁用ASP.NET调试器,则应用程序运行正常。

  8. 这是来自httperr日志的错误:

    2014-10-30 00:23:46 :: 1%0 2977 :: 1%0 80 - - - 400 - 动词 -

  9. 我不确定究竟在哪里,但在其他日志中,我看到了类似这样的内容:错误400"错误请求 - 无效动词"

  10. 一周前,我遇到问题的所有应用程序都与visual studio的asp.net调试器完美配合,我不知道发生了什么。

  11. 我怀疑有些更新。因为最近的更新也与我的自定义引导程序混乱。

  12. 启用跟踪时 - 使用http

  13. 的日志为空
  14. Fiddler日志也是空的,也许我可以在Fiddler中使用一些配置来生成更多日志? (当我使用https时,它使用修改后的machine.config记录)

  15. 永远感谢你的帮助,如果你需要更多的日志,请不要犹豫不决。

    我还想提一下,是的,我在这个网站上看过类似的帖子,但没有一个描述与我类似的问题。

    /编辑

    从我能够观察到的,错误发生在调试器访问machine.config文件之前,你能告诉我如何在那一刻捕获错误吗?

    ==== / edit 2 ====

    任何?没有人知道答案吗? 最近我能够在以下位置找到完整的错误消息:C:\ Users \\ AppData \ Local \ Temp \ Visual Studio Web Debugger.log

    http://localhost/MVCDemo/debugattach.aspx
    
    Status code=400 (Bad Request)
    Protocol version=1.1
    Cached=False
    Connection=close
    Content-Length=326
    Content-Type=text/html; charset=us-ascii
    Date=Fri, 31 Oct 2014 03:44:14 GMT
    Server=Microsoft-HTTPAPI/2.0
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
    <HTML><HEAD><TITLE>Bad Request</TITLE>
    <META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
    <BODY><h2>Bad Request - Invalid Verb</h2>
    <hr><p>HTTP Error 400. The request verb is invalid.</p>
    </BODY></HTML>
    

    在proccess monitor中,我也找到了这个:

    <event>
    <ProcessIndex>1339</ProcessIndex>
    <Time_of_Day>04:40:33,3661553</Time_of_Day>
    <Process_Name>devenv.exe</Process_Name>
    <PID>10768</PID>
    <Operation>CreateFile</Operation>
    <Path>C:\Users\<UserName>\AppData\Roaming\Microsoft\VisualStudio\12.0\Debugger\StepIntoFilterData.ini</Path>
    <Result>PATH NOT FOUND</Result>
    <Detail>Desired Access: Read Data/List Directory, Read Attributes, Synchronize, Disposition: Open, Options: Sequential Access, Synchronous IO Non-Alert, Non-Directory File, Attributes: n/a, ShareMode: Read, Delete, AllocationSize: n/a</Detail>
    </event>
    

    我真的非常需要帮助。

    === / edit 3 ===

    第二个错误无关紧要,我刚刚检查过,它也存在于https(C:\ Users \\ AppData \ Roaming \ Microsoft \ VisualStudio \ 12.0 \ Debugger \ StepIntoFilterData.in),调试为https localhost工作原理完美。

    === / edit 4 ===

    以下是在Visual Studio调试HTTP(不工作)和HTTPS(工作)

    期间捕获的Process Monitor日志

    (对随机MVC教程进行测试)

    使用CTRL + F并查找&#34; Visual Studio Web Debugger.log&#34;在日志中了解它何时发生。在https日志中是好的,在http日志中返回之前提到的无效动词错误。

    我可能错了,但我认为这里的关键是只有HTTP不起作用,只能使用VS Debugger,其他一切都很好(没有调试的HTTP和HTTPS以及调试的HTTPS)。

    (它发生在IIS上的每个解决方案中,新的解决方案也会受到影响,所有这些解决方案都有效,而且其中一些解决方案从他们工作时起甚至没有改变,IIS配置没有改变为孔)

1 个答案:

答案 0 :(得分:0)

我没有在这里的任何描述中看到动词的名称,但我的猜测是VS调试器使用特殊动词(DEBUG)而不是标准的GET,HEAD,POST等。如果重新安装IIS在VS之后,ISAPI映射可能已经被破坏了。这可以解决问题:

https://msdn.microsoft.com/en-us/library/ms165022%28v=vs.90%29.aspx