-1
我收到以下異常:MVC 6 - Krestel拋出錯誤,而建設Request的,任何工作四處呼叫路由到控制器
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
被用於捕獲錯誤。否則,我無法看到請求。
至少讓我們看看你的代碼。 – SubliemeSiem
public startup(IHostingEnvironment env) { //設置配置源。 var builder = new ConfigurationBuilder() .AddJsonFile(「appsettings.json」) .AddJsonFile(「XDCRInfo.json」) .AddEnvironmentVariables(); Configuration = builder.Build(); } –