ASP.NET Core 2.2.0-preview3 釋出
ASP.NET Core 2.2.0-preview3 釋出了,主要更新內容如下:
Routing
ASP.NET Core 2.2 中引入了引數轉化器(Parameter Transformers)的概念。引數轉化器通過轉換引數的路徑值來自定義生成的路徑,為開發人員提供新選項。
Link Generation
添加了一個 LinkGenerator 新服務,它是一個單例服務,支援使用/不使用 HttpContext 生成路徑和絕對 URI:
return _linkGenerator.GetPathByAction( httpContext, controller: "Home", action: "Index", values: new { id=42 });
Health Checks
DbContextHealthCheck
添加了一個新的基於 DbContext 的狀態檢查,在使用 Entity Framework Core 時可用:
// Registers required services for health checks services.AddHealthChecks() // Registers a health check for the MyContext type. By default the name of the health check will be the // name of the DbContext type. There are other options available through AddDbContextCheck to configure // failure status, tags, and custom test query. .AddDbContextCheck<MyContext>();
Health Check Publisher
添加了 IHealthCheckPublisher 介面:
Task PublishAsync(HealthReport report, CancellationToken cancellationToken);
如果向 DI 新增 IHealthCheckPublisher,則執行狀態檢查系統將定期執行狀態檢查,並使用結果呼叫 PublishAsync。
Tags
添加了在註冊時使用字串列表標記執行狀況檢查的功能:
services.AddHealthChecks() .AddDbContextCheck<MyContext>(tags: new[] { "db" });
這樣就可以通過 tag 來過濾執行:
app.UseHealthChecks("/liveness", new HealthCheckOptions { Predicate = (_) => false }); app.UseHealthChecks("/readiness", new HealthCheckOptions { Predicate = (check) => check.Tags.Contains("db") });
Validation Performance Improvements
添加了一個允許 MVC 進行短路驗證的功能,這帶來顯著的效能改進:

HTTP Client Performance Improvements
通過改進連線池鎖搶佔,對 SocketsHttpHandler 進行了一些重要的效能改進,這對於發出許多 HTTP 請求的應用程式,例如某些微服務架構,將會顯著提高吞吐量。內部基準測試表明,在負載下,HttpClient 吞吐量在 Linux 上提高了 60%,在 Windows 上提高了 20%。測試效果如下所示:
ASP.NET Core Module
添加了使用新的 IIS 程序內託管模型時檢測客戶端斷開連線的能力,當客戶端斷開連線時,會觸發 HttpContext.RequestAborted 取消 token。
ASP.NET 核心模組還具有增強的診斷日誌,可通過新的處理程式設定或環境變數進行配置,從而提供更高保真度的診斷資訊。
<?xml version="1.0" encoding="utf-8"?> <configuration> <location path="." inheritInChildApplications="false"> <system.webServer> <handlers> <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" /> </handlers> <aspNetCore processPath="dotnet" arguments=".\clientdisconnect.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess"> <handlerSettings> <handlerSetting name="debugFile" value="debug.txt" /> <handlerSetting name="debugLevel" value="TRACE" /> </handlerSettings> </aspNetCore> </system.webServer> </location> </configuration>
SignalR Java Client
本文來自雲棲社群合作伙伴“開源中國”
本文作者:h4cd
ofollow,noindex">原文連結