我是asp.net Core的新手,到目前为止我喜欢它。我有一个非常简单的动作,只返回一个字符串“Hello World”。我的问题是我认为http请求是锁定的,这实际上是在减慢速度,就像这个ASP.NET application to serve multiple requests from a single process一样。我正在进行负载测试我的第一个请求是967毫秒然而我的第100个请求需要10927毫秒或10秒,这是非常长的返回一个简单的字符串。这是在发布模式下完成的。
public string HomeStream()
{
return "Hello World";
}
我在想某些事情是锁定http请求,因为第100个请求应该更快地返回。任何建议都会很棒。这是我的启动设置
{
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:55556/",
"sslPort": 0
}
},
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"MyApp": {
"commandName": "Project",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
"applicationUrl": "http://localhost:5002/"
}
}
}
答案 0 :(得分:1)
如果您正在尝试返回一个简单的字符串并加载测试底层主机,那么我建议您删除所有中间件和服务
using System.Net;
using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Http;
public static void Main(string[] args)
{
IWebHost host = new WebHostBuilder()
.UseKestrel()
.Configure(app =>
{
// notice how we don't have app.UseMvc()?
app.Map("/hello", SayHello); // <-- ex: "http://localhost/hello"
})
.Build();
host.Run();
}
private static void SayHello(IApplicationBuilder app)
{
app.Run(async context =>
{
// implement your own response
await context.Response.WriteAsync("Hello World!");
});
}