簡體   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