在Beta版中,我注意到如果我用空白调用URI,则框架会引发异常。
(是的,通常浏览器用'%20'代替空格,但是如果我使用Fiddler或自己的HTTP客户端,则可以杀死Web api)
现在,Web Api已命中RC,但此错误仍然存在。 (NullReferenceException)
微软知道这个错误吗?
堆栈跟踪:
at Microsoft.VisualStudio.WebHost.Request.IsBadPath() at Microsoft.VisualStudio.WebHost.Request.TryParseRequest() at Microsoft.VisualStudio.WebHost.Request.Process() at Microsoft.VisualStudio.WebHost.Host.ProcessRequest(Connection conn)
at Microsoft.VisualStudio.WebHost.Host.ProcessRequest(Connection conn) at Microsoft.VisualStudio.WebHost.Server.OnSocketAccept(Object acceptedSocket) at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx) at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem() at System.Threading.ThreadPoolWorkQueue.Dispatch() at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()
最佳答案
异常的堆栈跟踪是什么?如果栈顶看起来像这样:
WebDev.WebHost40.dll!Microsoft.VisualStudio.WebHost.Request.IsBadPath() Line 435 + 0x1e bytes C# WebDev.WebHost40.dll!Microsoft.VisualStudio.WebHost.Request.TryParseRequest() Line 182 + 0x9 bytes WebDev.WebHost40.dll!Microsoft.VisualStudio.WebHost.Request.Process() Line 94 + 0x9 bytes C# WebDev.WebHost40.dll!Microsoft.VisualStudio.WebHost.Host.ProcessRequest(Microsoft.VisualStudio.WebHost.Connection conn) Line 75 + 0xb bytes C#
这是Visual Studio Web服务器中的一个已知错误。由于此Web服务器仅侦听localhost,因此这不是安全问题,也不会得到解决。
关于url - Web Api:Whitespace使ASP.NET 4 Web Api(RC)崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11097023/