我正在测试一些 .net Core 中间件,并希望在整个 asp.net Core http 管道中运行中间件,而不是模拟它。
问题是当我使用 Feature Collection 时,某种方式 Response 对象没有被设置在 httpRequest 中,而且在 Request 自身上是只读的。
当尝试写入响应流时,此代码会抛出异常。
问题是当我使用 Feature Collection 时,某种方式 Response 对象没有被设置在 httpRequest 中,而且在 Request 自身上是只读的。
当尝试写入响应流时,此代码会抛出异常。
var fc = new FeatureCollection();
fc.Set<IHttpRequestFeature>(new HttpRequestFeature {
Headers = new HeaderDictionary { { "RandomHeaderName", "123" } }
});
var httpContext = new DefaultHttpContext(fc);
var middleware = new RequestValidationMiddleware(
next: async (innerHttpContext) =>
{
await innerHttpContext.Response.WriteAsync("test writing");
});
middleware.InvokeAsync(httpContext).GetAwaiter().GetResult();
controller.Response
被设置了,但是我的controller.Response.Headers
是空的。为什么头部信息是空的呢? - jmbmage