Nancy自托管HttpListenerException:“;参数不正确”;
本文关键字:参数 不正确 HttpListenerException Nancy | 更新日期: 2023-09-27 18:25:35
我通过github安装了NancyFX 0.23.2源代码,并在Windows 7 x64上使用VS2013 Pro进行构建。我可以构建得很好,但当我通过GenericFileRespose返回任何时,我得到:
A first chance exception of type 'System.Net.HttpListenerException' occurred in System.dll
---
System.Net.HttpListenerException (0x80004005): The parameter is incorrect
at System.Net.HttpResponseStream.Write(Byte[] buffer, Int32 offset, Int32 size)
at System.IO.Stream.InternalCopyTo(Stream destination, Int32 bufferSize)
at Nancy.Responses.GenericFileResponse.<>c__DisplayClass1.<GetFileContent>b__0(Stream stream) in h:'home'projects'nancy'0.23.2'Nancy'src'Nancy'Responses'GenericFileResponse.cs:line 82
at Nancy.Hosting.Self.NancyHost.OutputWithDefaultTransferEncoding(Response nancyResponse, HttpListenerResponse response) in h:'home'projects'nancy'0.23.2'Nancy'src'Nancy.Hosting.Self'NancyHost.cs:line 320
at Nancy.Hosting.Self.NancyHost.ConvertNancyResponseToResponse(Response nancyResponse,
...
相反,如果我链接到通过nuget检索的Nancy二进制文件,我的输出是好的,但我没有Nancy的调试信息。
我启动了Nancy的自主持演示,它似乎运行良好,但如果我能说出我的项目有什么不同,那就很危险了。一切都是为"任何cpu"构建的。Nancy是用一个目标.net 4.0客户端配置文件构建的,Nancy.Hosting.Self目标是.net 4.0完整的,我的类库和我的控制台应用程序也是如此。
如有任何见解,我们将不胜感激。
我也可以回答这个问题,因为没有其他人回答。
肯定有点可疑,因为当我安装Nancy.Serialization.JsonNet 0.23.2的源代码时,它与我通过nuget获得的Nancy 0.23.2兼容,但与github的Nancy.23.2不兼容。JsonNetBodyDeserializer.Deserialize()引用BindingContext.ValidModelProperties,但Nancy 0.23.2源中不存在此属性;它已被BindingContext.ValidModelBindingMembers(包括属性和字段)所取代。
当我检索、编译并使用Nancy 0.23.1的源代码时,Nancy.Serialization.JsonNet很高兴,我的System.Net.HttpListener异常也消失了。
所以,我的解决方案是使用Nancy 0.23.1,但我仍然不知道为什么0.23.2不起作用。