2017-10-08 98 views
2

我是新來的asp.net核心,到目前爲止我喜歡它。我有一個非常簡單的操作,只是返回一個字符串「Hello World」。我的問題是,我認爲http請求是鎖定的,這實際上減慢了事情的速度,就像這個ASP.NET application to serve multiple requests from a single process一樣。我正在做負載測試我的第一個請求是967毫秒,但是我的第100個請求需要10927毫秒或10秒,這非常長,返回一個簡單的字符串。這是在發佈模式下完成的。asp.net核心如何阻止來自鎖定的http請求

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/" 
    } 
    } 
} 

我使用網址。 enter image description here

+0

4的CPU是一臺MacBook Pro的 – user1591668

+0

是什麼'maxConcurrentThreadsPerCPU'和'maxConcurrentRequestsPerCPU'設置爲https://stackoverflow.com/questions/44391268/how-to-configure-concurrency-in-net-core-web-api?將ThreadPool.SetMinThreads設置爲很大數量(比如說2000)有幫助嗎?你在運行什麼操作系統(Windows 10 Home?其他?)? – mjwills

+0

我不認爲這些選項存在.net核心2.0 – user1591668

回答

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!"); 
    }); 
} 
+0

完美,這絕對有助於很多 – user1591668