我通过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已满,我的类库和启动NancyHost的控制台应用程序也是如此。
非常感谢任何见解。
答案 0 :(得分:0)
我可以回答这个问题,因为没有其他人这样做过。
必须有一些有点可疑的东西,就像我为Nancy.Serialization.JsonNet 0.23.2安装源代码一样,它使用的是Nancy 0.23.2我通过nuget获得,但不是来自github的Nancy 0.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不起作用。