2017-03-02 19 views
4

ASP.Net CoreにアップグレードしようとしているASP.Net 4.5アプリケーションがあります。このアプリケーションは、サードパーティのアプリケーションからの呼び出しを受け取ります。これが正常に動作しますASP.NetコアAPI HttpRequestMessageへのアクセス

public async Task<HttpResponseMessage> RealTimeAsync(HttpRequestMessage request) 
{ 
    var StatusMessage = string.Empty; 
    try 
    { 
     var doc = new XmlDocument(); 
     doc.Load(await request.Content.ReadAsStreamAsync()); 

4.5から:私の古いアプリケーションで

私はこのようになりますアクションを持っています。しかし、ASP.Netコアでこのコードを使用すると、request.Contentがnullであるため、オブジェクト参照がオブジェクトのインスタンスに設定されないというエラーが発生します。

2つのアプリケーション(4.5および.Netコア)へのリクエストは同じです。 .Net Coreアプリケーションでrequest.Contentがnullとなるのはなぜですか?提案NugetパッケージをインストールASP.NET Core HTTPRequestMessage returns strange JSON message

私が試した:私はこの記事を参照し

。ただし、.Netコアと互換性がありません。

error: Package Microsoft.AspNet.WebApi.Client 5.2.2 is not compatible with netcoreapp1.0 (.NETCoreApp,Version=v1.0). Package Microsoft.AspNet.WebApi.Client 5.2.2 supports: error: - net45 (.NETFramework,Version=v4.5) error: - portable-net45+netcore45+wp8+wp81+wpa81 (.NETPortable,Version=v0.0,Profile=wp8+netcore45+net45+wp81+‌​wpa81) error: One or more packages are incompatible with .NETCoreApp,Version=v1.0.

答えて

3

最新の構造を使用するには、そのコードをリファクタリングする必要があります。

public Task<IActionResult> RealTimeAsync() { 
    var StatusMessage = string.Empty; 
    try { 
     var request = this.Request; 
     var doc = new XmlDocument(); 
     doc.Load(request.Body); //request.Body returns a stream 
    //...other code... 
関連する問題