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

rvn*_*ord 5 asp.net debugging syntax-error

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

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

    在此输入图像描述

  2. 直到今天,我在谷歌中找到了我能找到的所有解决方案.我花了12个小时试图解决这个问题.没有运气.

  3. 只有这个地址出现错误:http:// localhost/AspDemo不是这个:https:// localhost/AspDemo.基本上,我可以像往常一样调试,如果我把https而不是http.

  4. https在我的本地IIS服务器上禁用:),我的意思是它被设置为忽略.

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

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

  7. 这是httperr日志中的错误:

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

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

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

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

  11. 当我启用跟踪时 - 使用http清空日志

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

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

我也想提一下,是的,我在这个网站上看到了类似的帖子,但没有一个描述的问题与我的相似.

/编辑

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

==== /编辑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>
Run Code Online (Sandbox Code Playgroud)

在proccess监视器中,我也找到了这个:

<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>
Run Code Online (Sandbox Code Playgroud)

我真的非常需要帮助.

=== /编辑3 ===

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

=== /编辑4 ===

以下是在Visual Studio调试HTTP(不工作)和HTTPS(工作)期间捕获的Process Monitor日志

(在随机MVC教程上进行测试)

使用CTRL + F并在日志中查找"Visual Studio Web Debugger.log"以了解它何时发生.在https日志中是好的,在http日志中返回之前提到的Invalid Verb错误.

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

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

小智 0

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

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