ASP.NET de Base Ne peut pas Lire du Corps de la Requête

J'ai travaillé sur ASP.NET Base de quelques semaines. Je cherche à réaliser quelque chose de basé sur ce blog:
Microservices

Mon project.json est comme suit:

{
  "version": "1.0.0-*",
  "compilationOptions": {
    "emitEntryPoint": true
  },

  "dependencies": {

    "Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc1-final",
    "Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final",
    "Microsoft.AspNet.Diagnostics": "1.0.0-rc1-*",
    "Microsoft.AspNet.Mvc": "6.0.0-rc1-final",
    "EntityFramework.Core": "7.0.0-rc1-final",
    "EntityFramework.Commands": "7.0.0-rc1-final",
    "EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final",
    "EntityFramework.MicrosoftSqlServer.Design": "7.0.0-rc1-final",
    "Microsoft.AspNet.Mvc.Formatters.Json": "6.0.0-rc1-final",
    "Microsoft.AspNet.Mvc.Formatters.Xml": "6.0.0-rc1-final",
    "System.Security.Cryptography.Algorithms": "4.0.0-beta-23516"

  },

  "commands": {
    "web": "Microsoft.AspNet.Server.Kestrel",
    "ef": "EntityFramework.Commands"
  },

  "frameworks": {

    "dnxcore50": {
      "dependencies": {


      }

    }
  },

  "exclude": [
    "wwwroot",
    "node_modules"
  ],
  "publishExclude": [
    "**.user",
    "**.vspscc"
  ]
}

Et ConfigureServices méthode dans Startup.cs est comme suit:

public void ConfigureServices(IServiceCollection services)
{
    //Registering Authorization Database
    AutorizationAccessRegisteration.RegisterComponents(services, Configuration);

    services.AddMvcCore()
        .AddJsonFormatters(a => a.ContractResolver = new CamelCasePropertyNamesContractResolver());

    //Add cors built in support.
    services.AddCors();

    services.AddMvcCore().AddApiExplorer();

    //Add MVC for supporting WebApi requests
    #region MVC Add

    services.AddMvc();

    services.AddMvc().AddMvcOptions(options =>
    {
        options.RespectBrowserAcceptHeader = true;

        //Input Formatters.
        options.InputFormatters.Clear();

        var jsonInputFormatter = new JsonInputFormatter()
        {
            SerializerSettings = new JsonSerializerSettings()
            {
                ContractResolver = new CamelCasePropertyNamesContractResolver()
                ,
                DefaultValueHandling = DefaultValueHandling.IgnoreAndPopulate,
                NullValueHandling = NullValueHandling.Ignore
            }
        };


        options.InputFormatters.Add(jsonInputFormatter);

        //Output formater
        //as part of get/post request, set the header Accept = application/json or application/xml
        var jsonOutputFormatter = new JsonOutputFormatter();
        jsonOutputFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
        jsonOutputFormatter.SerializerSettings.DefaultValueHandling = Newtonsoft.Json.DefaultValueHandling.Ignore;
        options.OutputFormatters.Insert(0, jsonOutputFormatter);

        options.OutputFormatters.Insert(1, new XmlDataContractSerializerOutputFormatter());

    });

    #endregion
}

Et voici mon Confiure méthode de Démarrage.cs:

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    if (env.IsDevelopment())
    {

    }
    else if (env.IsStaging())
    {

    }
    else if (env.IsProduction())
    {

    }

    app.UseIISPlatformHandler();

    app.UseCors(builder =>
            builder.WithOrigins("*").AllowAnyHeader().AllowAnyMethod());

    //Middlewares addition to the pipelines:
    ///We add the middlewares in the following fashion:
    ///- Exception Handler
    ///- Logger
    ///- Authorization Handler
    ///There is a big reason of doing that.
    ///
    app.UseExceptionHandler();
    app.UseLoggerHandler();
    app.UseAuthorizationHandler();

    app.UseMvc();
}

Un AuthorizationController est comme suit:

[Route("api/Authorization")]
public class AuthorizationController : Controller
{
 .
     [HttpPost]
     public void Post([FromBody]string value)
     {
     }
 .
}

La Post méthode avait à l'origine [FromBody]string[] value. J'ai simplifié en faisant un simple string type. Je suis en utilisant l'Avance de Repos Client sur Chrome pour envoyer un HTTP request. Lorsque string[] était le type I a été les valeurs suivantes dans le corps:

{

  ["value","sdjklgsdjlg"]

}

Après la simplification du paramètre, j'ai essayé d'envoyer la demande avec le corps suivantes:

{"sdjklgsdjlg"}

essayé ceci:

{"value":"sdjklgsdjlg"}

Suis-je raté quelque chose? Je l'ai lu avant, l'ancienne WebApi l'habitude de travailler en relation avec le JSON de la cartographie à la complexité des objets et des paramètres normaux, il fonctionne de manière similaire .NET de Base.

Aussi je doit préciser que point d'arrêt est frappé normalement sur tous les middlewares et les contrôleurs. Mais aucun des middleware semble être en mesure à la Demande de lecture du flux liés choses:

ASP.NET de Base Ne peut pas Lire du Corps de la Requête

ASP.NET de Base Ne peut pas Lire du Corps de la Requête

De bien vouloir me dire où je suis en train de problème. Merci beaucoup!

Quel est votre renifleur de réseau à dire sur le sujet? Pouvez-vous coller la capture de la session http? Aussi, pouvez-vous coller le message d'erreur complet?
Que voulez-vous dire? Je suis en utilisant l'Avance de Repos Client. Il montre corriger les en-Têtes de Requête et de matières corps comme je l'ai mentionné ci-dessus.
avez-vous essayé sans [FromBody]? Je pense que cela fonctionnera sans que
J'ai essayé, essayé tout à l'heure à nouveau. Mais ne pensez-vous pas que si la valeur n'a pas à apparaître dans le contrôleur alors seulement ce [FromBody] pourrait avoir fait le problème. Mais ce n'est pas le cas. J'ai posté deux photos, qui sont de mon premier ExceptionMiddleware et vous pouvez voir quelles erreurs sont à apparaître dans le Corps et les variables de Formulaire de la demande.
Vous ajoutez MVC deux fois, est-ce normal ? et MvcCore est ajouté deux fois trop. qui fait un peu bizarre

OriginalL'auteur FreshDev | 2016-03-18