-1

次の例外が発生します。

System.ArgumentException

   at Microsoft.AspNet.Http.PathString..ctor(String value)
   at Microsoft.AspNet.Http.Internal.DefaultHttpRequest.get_Path()
   at Microsoft.AspNet.StaticFiles.Helpers.TryMatchPath(HttpContext context,   PathString matchUrl, Boolean forDirectory, PathString& subpath)

the Request METHOD is GET
 HTTP Version HTTP/1.1
Content-Type : application/x-www-form-urlencoded
Accept-Encoding : {gzip}

どんな助けでも大歓迎です。

public Startup(IHostingEnvironment env)
{
    // Set up configuration sources.
    var builder = new ConfigurationBuilder()
        .AddJsonFile("appsettings.json")
        .AddJsonFile("XDCRInfo.json")
        .AddEnvironmentVariables();
    Configuration = builder.Build();
}

public void ConfigureServices(IServiceCollection services)
{
    var policy = new Microsoft.AspNet.Cors.Infrastructure.CorsPolicy();

    policy.Headers.Add("*");
    policy.Methods.Add("*");
    policy.Origins.Add("*");
    policy.SupportsCredentials = true;

    services.Configure<XDCRSettings>(Configuration.GetSection("XDCRSettings"));

    // Adding Cors
    services.AddCors(options =>
    {
        options.AddPolicy("CrossOrigin", policy);
    });

    // Add framework services.
    services.AddMvc();            

    services.Configure<MvcOptions>(options =>
    {
        options.RespectBrowserAcceptHeader = true;
    });
}

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
    app.UseExceptionHandler("/Home/Error");

    app.Use(next => async context => 
        // Keep the original stream in a separate
        // variable to restore it later if necessary.
        var stream = context.Request.Body;

        // Optimization: don't buffer the request if
        // there was no stream or if it is rewindable.
        if (stream == Stream.Null || stream.CanSeek)
        {
            await next(context);
            return;
        }

        try
        {
            using (var buffer = new MemoryStream())
            { 
                // Copy the request stream to the memory stream.
                await stream.CopyToAsync(buffer);

                // Rewind the memory stream.
                buffer.Position = 0L;

                // Replace the request stream by the memory stream.
                context.Request.Body = buffer;

                // Invoke the rest of the pipeline.
                await next(context);
            }
        }
        catch (System.ArgumentException ex)
        {
            var Frame = (Microsoft.AspNet.Server.Kestrel.Http.Frame)context.Features;

            Console.WriteLine(Frame.RequestUri);
        }
        finally
        {
            // Restore the original stream.
            context.Request.Body = stream;
            Console.WriteLine(context.Request);
        }
    });

    app.UseCors("CrossOrigin");

    app.UseMvc();
}

App.useエラーをキャプチャするために使用されました。そうしないと、リクエストを見ることができませんでした。

4

1 に答える 1