Start Debugging

Блог

Страница 14 из 91

Исправляем: Conflicting assets with the same target path после перехода на .NET 10 SDK

В .NET 10 SDK каждый проект Microsoft.NET.Sdk.Web получает StaticWebAssetBasePath=/, поэтому веб-приложение, ссылающееся на другое веб-приложение, вызывает конфликт. Задайте базовый путь в проекте, на который ссылаются. Отключение сжатия не помогает.

Исправление: HttpIOException: The response ended prematurely от HttpClient в .NET

HttpClient повторно использует keep-alive соединение, которое сервер только что закрыл, или сервер обрывает соединение посреди ответа. Сделайте PooledConnectionIdleTimeout меньше таймаута простоя сервера и повторяйте только идемпотентные запросы.

Исправление: Unable to find the required 'IAuthenticationService' service с [Authorize(Policy = ...)] в Blazor

Страница Blazor Web App с [Authorize] становится конечной точкой, которую проверяет AuthorizationMiddleware, а неудачная проверка вызывает ChallengeAsync, для которого нужен AddAuthentication. Зарегистрируйте настоящую схему или пропускайте конечные точки компонентов дальше, к AuthorizeRouteView.
2026-09-24 nugetdotnetsecurity

Microsoft меняет сертификат авторской подписи NuGet: исправьте trustedSigners до появления NU3034

С 23 сентября 2026 года пакеты Microsoft в NuGet получают авторскую подпись новым сертификатом (SHA-256 9A1B131B...). Если ваш nuget.config закрепляет Microsoft в trustedSigners, восстановление пакетов завершится ошибкой NU3034. Разбираем исправление, включая правильную команду dotnet nuget trust.

Исправление: собственный DelegatingHandler не запускается повторно при каждом retry с AddStandardResilienceHandler

DelegatingHandler, зарегистрированный до AddStandardResilienceHandler, выполняется один раз на логический запрос, а не на каждую повторную попытку. Перенесите его после обработчика устойчивости и сделайте идемпотентным, потому что retry повторно отправляет тот же HttpRequestMessage. Проверено на Microsoft.Extensions.Http.Resilience 10.10.0 и 8.10.0.

Исправление: IConfiguration.Bind не заполняет свойство-массив или List<T> из appsettings.json

Биндер молча пропускает свойства-массивы без публичного сеттера, IReadOnlyList<T> только для чтения, поля и init-члены при генераторе исходного кода, а также добавляет элементы к значениям по умолчанию вместо их замены. Проверено на .NET 10.0.12 и 11 RC 1.

Как сериализовать публичные поля, такие как Vector3 и Quaternion, с помощью System.Text.Json

System.Text.Json записывает Vector3 как {}, а Quaternion как {"IsIdentity":false}, потому что эти типы хранят данные в публичных полях. Разбираем, как это исправляют IncludeFields, собственный конвертер, модификатор resolver и генерация исходного кода, с измерениями на .NET 10 и .NET 11 RC 1.

StackExchange.Redis 3.3 уходит с узла Redis до того, как сервер разорвёт соединение

StackExchange.Redis 3.3.0 добавляет включаемые по желанию уведомления об обслуживании (smart client handoffs) для Redis Enterprise, Redis Cloud и Azure Managed Redis: смягчённые таймауты во время миграций, повторное чтение топологии и заблаговременный переход до исчезновения конечной точки. Разбираем, как это включить и с какой ошибкой SER010 вы столкнётесь первой.
2026-09-22 flutterdartwebview

Как запретить Flutter WebView переходить на внешние URL с помощью NavigationDelegate

Удерживайте Flutter WebView на своём домене с webview_flutter 4.14.1: разбирайте URL, сравнивайте Uri.host вместо startsWith, передавайте mailto: и tel: в url_launcher и учитывайте, что Android и iOS на самом деле отправляют в onNavigationRequest.

Как отключить проверку antiforgery для одной конечной точки формы в minimal API в ASP.NET Core 11

Вызовите .DisableAntiforgery() на этой одной конечной точке или на MapGroup. В ASP.NET Core 11 это отключает и middleware токенов, и новую автоматическую проверку CSRF. Измеренная матрица, ловушки приоритета и более узкие альтернативы.