我正在尝试向基于Nancy的应用添加旧的.asmx网络服务。根据其他SO帖子的建议,我已经添加了
<add key="wcf:serviceHostingEnvironment:useClassicReadEntityBodyMode" value="true" />
但无济于事,我仍然得到了
System.Web.Services.Protocols.SoapException:运行配置文件中指定的扩展名时出现异常。 ---&GT; System.Web.HttpException:不支持此方法或属性 在调用HttpRequest.GetBufferlessInputStream之后。 在System.Web.HttpRequest.get_InputStream() 在System.Web.Services.Protocols.SoapServerProtocol.Initialize() ---内部异常堆栈跟踪结束--- 在System.Web.Services.Protocols.SoapServerProtocol.Initialize() 在System.Web.Services.Protocols.ServerProtocolFactory.Create(Type type, 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,这可能是问题吗?
答案 0 :(得分:0)
问题不在于南希,我删除了app.UseStageMarker(PipelineStage.MapHandler);
。这是一个Owin问题,所以我要结束了。