Start Debugging

Тег: aspnetcore

79 статей · Страница2из8

WebApplicationFactory против Testcontainers для интеграционных тестов в ASP.NET Core
Это не альтернативы. WebApplicationFactory поднимает ваше приложение, Testcontainers поднимает его зависимости. Измерено на .NET SDK 10.0.201: фикстура с контейнером стоит 1.7 с на класс против 10 мс у SQLite, а нарушение HasMaxLength(16), которое Postgres отклоняет с кодом 22001, SQLite молча принимает.
Исправление: Attempting to reconnect to the server после обрыва circuit в Blazor Server
Модальное окно переподключения означает, что оборвался circuit SignalR, а не что приложение упало. Определите, чем закончилась попытка, failed или rejected, и почините привязку сессий, окно хранения в 3 минуты, лимит 32 КБ или сохраните состояние через [PersistentState].
gRPC vs REST vs SignalR для вызовов между сервисами в .NET 11
Для внутренних вызовов между сервисами в .NET 11 по умолчанию выбирайте gRPC, когда вы владеете обеими сторонами контракта и вызов идёт точка-точка. Используйте REST с JSON, когда сервис должен вызывать что-то, что вы не контролируете. SignalR не является RPC-транспортом между сервисами: обращайтесь к нему только тогда, когда один производитель должен разослать сообщение многим долгоживущим потребителям.
Исправление: HTTP Error 500.30 - ASP.NET Core app failed to start после развёртывания на IIS
500.30 означает, что приложение выбросило исключение при запуске внутри w3wp.exe. Настоящее исключение уже находится в журнале приложений Windows под источником IIS AspNetCore Module V2. Сначала прочитайте его, а затем расставьте приоритеты: отсутствующий общий фреймворк, несоответствие разрядности пула приложений, отсутствующая конфигурация или права пула.
Как валидировать опции при старте с помощью IValidateOptions<T> в .NET 11
Реализуйте IValidateOptions<T>, зарегистрируйте его во внедрении зависимостей и добавьте ValidateOnStart, чтобы неверный appsettings.json убивал процесс, а не первый запрос, который его затронет. Разбираются перегрузка Validate<TValidator>() из .NET 11, асинхронная валидация через IAsyncValidateOptions<T> и три случая, когда ValidateOnStart молча ничего не делает.
Как настроить Kestrel для работы по HTTP/3 в ASP.NET Core 11
Полное руководство по включению HTTP/3 в Kestrel в ASP.NET Core 11: настройка конечной точки через HttpProtocols.Http1AndHttp2AndHttp3, требования MsQuic к платформе в Windows, Linux и macOS, почему первый запрос никогда не идёт по HTTP/3, проверка через HttpClient и middleware, настройка QuicTransportOptions и проблемы с firewall и прокси, из-за которых происходит тихий откат.
IOptions<T> vs IOptionsSnapshot<T> vs IOptionsMonitor<T> в .NET 11
По умолчанию используйте IOptions<T>. Берите IOptionsMonitor<T>, когда синглтон должен видеть перезагрузку конфигурации, и IOptionsSnapshot<T> только тогда, когда scoped-потребителю нужно значение, стабильное в пределах одного запроса. Решает время жизни потребителя, а не форма настроек.
2026-07-30 errorsblazordotnet
Исправление: JavaScript interop calls cannot be issued at this time (предварительный рендеринг Blazor)
Предварительный рендеринг выполняет компонент на сервере без браузера, поэтому IJSRuntime бросает исключение. Перенесите вызов в OnAfterRenderAsync, проверяйте RendererInfo.IsInteractive или отключите предварительный рендеринг.
Как добавить Aspire в существующее решение ASP.NET Core без его перестройки
Добавление Aspire 13.4 в унаследованное решение ASP.NET Core: два новых проекта и три строки на сервис. aspire init, связывание AppHost через AddProject и WithReference, сохранение существующих launchSettings.json и строк подключения, а также подводные камни с резилентностью, health-эндпоинтами и прокси в первый же день.
Назад Вперёд