【发布时间】:2014-12-25 22:15:27
【问题描述】:
我真的非常需要你的帮助,因为我的程序遇到了非常不寻常的问题:
-
当我尝试在本地 IIS 服务器 7.5 上调试我的 ASP.NET 或 MVC 应用程序时收到此错误: "无法在 Web 服务器上开始调试。由于语法无效,服务器无法处理调试请求。"
直到今天,我几乎尝试了所有可以在 google 中找到的解决方案。我花了 12 个小时试图弄清楚这一点。没有运气。
错误只发生在这个地址:http://localhost/AspDemo 没有这个地址:https://localhost/AspDemo。基本上,如果我使用 https 而不是 http,我可以像往常一样调试。
https 在我的本地 IIS 服务器上被禁用 :),我的意思是它被设置为忽略。
此外,我可以在 IIS 控制面板中使用 BOTH 协议打开我的网站
如果我在 Visual Studio 的应用程序属性中禁用 ASP.NET 调试器,应用程序运行正常。
-
这是来自 httperr 日志的错误:
2014-10-30 00:23:46 ::1%0 2977 ::1%0 80 - - - 400 - 动词 -
我不确定具体在哪里,但在其他一些日志中我看到了类似这样的引用:Error 400 "Bad Request - Invalid Verb"
一周前,我遇到问题的所有应用程序都与 Visual Studio 的 asp.net 调试器完美配合,但我不知道发生了什么。
我怀疑有些更新。因为最近更新也弄乱了我的自定义引导加载程序。
当我启用跟踪时 - 使用 http 的日志为空
Fiddler 日志也是空的,也许我可以在 Fiddler 中使用一些配置来生成更多日志? (当我使用 https 时,它当然会使用修改过的 machine.config 记录)
将永远感谢您的帮助,如果您需要更多日志,请不要犹豫。
我还想提一下,是的,我在这个网站上看到过类似的帖子,但没有一个描述的问题与我的类似。
/编辑
据我观察,错误发生在调试器访问 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>
在进程监视器中,我也找到了这个:
<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(工作)期间捕获的进程监视器日志
(在随机 MVC 教程上进行的测试)
使用 CTRL+F 并在日志中查找“Visual Studio Web Debugger.log”以了解何时发生。在 https 日志中是好的,在 http 日志中返回之前提到的 Invalid Verb 错误。
- HTTP(不工作):: https://www.dropbox.com/s/7b26ybogtyqlico/LogFile%20HTTP%20NOT%20Working.CSV?dl=0
- HTTPS(工作): https://www.dropbox.com/s/ggsj57v97ky90e6/LogFile%20HTTPS%20Working.CSV?dl=0
我可能错了,但我认为这里的关键是只有 HTTP 不起作用并且只有 VS Debugger 才能工作,其他一切都很好(HTTP 和 HTTPS 没有调试,HTTPS 有调试。)强>
(IIS 上的每个解决方案都会发生这种情况,新的解决方案也会受到影响,所有这些解决方案都在工作,而且其中一些甚至从它们工作的时候就没有改变,IIS 配置也没有改变)
【问题讨论】:
-
尝试以管理员身份运行 Visual Studio。
-
感谢您的回复,我始终以管理员身份运行,我什至尝试以系统身份运行,您是否阅读了我提到的错误,它们是否给您任何线索?
-
我很好奇这是从哪里来的:
C:\Users\<UserName>\AppData\...如果从某个应该是 XML 的东西中读取该值,那肯定是无效的语法。您能否对<UserName>进行完整的项目文本搜索,看看是否会在任何文件中产生任何结果?特别是在解决方案、项目、配置文件中。 -
我通过进程监视器进行了检查,当我使用 https 而不是 http 时,同一个文件被报告为丢失,但一切正常,所以情况并非如我想的那样尽快发布整个报告。我想再次提一下,当使用浏览选项从 IIS 服务器手动启动应用程序时,这两种协议都有效。
-
您是否以管理员身份运行 Fiddler?
标签: asp.net debugging syntax-error