Start Debugging

Тег: dotnet-10

97 статей · Страница3из10

Исправление: MediaPicker.CapturePhotoAsync возвращает PNG вместо JPEG в .NET MAUI 10
На iOS MAUI 10 перекодирует снимки с камеры в PNG, если CompressionQuality равно 90 или выше и не задан MaximumWidth/Height, что включает значение по умолчанию. Установите CompressionQuality на 89 или ниже либо добавьте MaximumWidth только для iOS.
Исправление: ASP.NET Core возвращает 400 "The X field is required" для свойства типа string, не допускающего null
При <Nullable>enable</Nullable> MVC обрабатывает каждый ссылочный тип, не допускающий null, как [Required(AllowEmptyStrings = true)]. Объявите необязательные свойства как string?, задайте им значение по умолчанию или установите SuppressImplicitRequiredAttributeForNonNullableReferenceTypes.
Исправляем: 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.
Исправление: собственный 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.
Как добавить id текущего пользователя в каждую запись журнала в ASP.NET Core
Middleware с BeginScope пропускает запись об ошибке от обработчика исключений и строку Request finished. Зарегистрируйте ILogEnricher, который читает пользователя из IHttpContextAccessor, открывайте scope только тогда, когда работа выходит за пределы запроса, и учтите, что AddSerilog из Serilog молча отключает обогащение.
Как использовать последовательность Oracle для генерации первичных ключей в EF Core
Привязка ключа EF Core к последовательности Oracle через UseSequence в Oracle.EntityFrameworkCore 10: какой DDL и какой SQL для INSERT на самом деле генерирует провайдер, как сослаться на существующую последовательность или унаследованный триггер, почему на кавычках и HiLo спотыкаются чаще всего и как перевести identity-столбец на последовательность без ORA-00001.
Назад Вперёд