繁体   English   中英

在.NET 4.5.2中将.asmx添加到Nancy-在HttpRequest.GetBufferlessInputStream之后不支持

[英]Adding .asmx to Nancy in .NET 4.5.2 - not supported after HttpRequest.GetBufferlessInputStream

我正在尝试将一个旧的.asmx Web服务添加到基于Nancy的应用程序中。 根据关于其他SO帖子的建议,我已经添加了

<add key="wcf:serviceHostingEnvironment:useClassicReadEntityBodyMode" value="true" />

但无济于事

System.Web.Services.Protocols.SoapException:运行配置文件中指定的扩展名时出现异常。 ---> System.Web.HttpException:调用HttpRequest.GetBufferlessInputStream后,不支持此方法或属性。 在System.Web.Services.Protocols.SoapServerProtocol.Initialize()处的System.Web.HttpRequest.get_InputStream()-内部异常堆栈跟踪的结尾-在System.Web.Services.Protocols.SoapServerProtocol.Initialize()在System.Web.Services.Protocols.ServerProtocolFactory.Create中(类型类型,HttpContext上下文,HttpRequest请求,HttpResponse响应,布尔值和abortProcessing)

如果我将app.UseNancy(options)注释掉,则asmx再次起作用。 实际上,它甚至可以在没有useClassicReadEntityBodyMode情况下使用。 我怎样才能使asmx与Nancy一起工作? 对于启动,我

var bootstrapper = new CustomNinjectNancyBootstrapper(resolver.Kernel);
var options = new NancyOptions
{
    Bootstrapper = bootstrapper,
    PerformPassThrough = c => c.Request.Path.EndsWith(".asmx"),
};
options.PassThroughWhenStatusCodesAre(HttpStatusCode.NotFound);
app.UseNancy(options);
app.UseStageMarker(PipelineStage.MapHandler);

更新,SOAP客户端是.NET 3.5,这可能是问题吗?

问题不是南希,而是app.UseStageMarker(PipelineStage.MapHandler); 我删除了 这是一个Owin问题,所以我要结束了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM