Start Debugging

Тег: dotnet

422 статей · Страница3из43

2026-10-11 csharpdotnetfile-io
Как читать хвост файла журнала в C#, пока другой процесс продолжает в него писать
Откройте журнал с FileShare.ReadWrite | FileShare.Delete, перейдите в конец, опрашивайте файл на появление новых байтов, декодируйте их собственным UTF-8 Decoder вместо StreamReader и явно обрабатывайте усечение и ротацию. Проверенная реализация tail -F для .NET 10 и .NET 11.
Quartz.NET 4.4: задания сообщают о своём результате, а проверка работоспособности замечает, когда они перестают выполняться
Quartz.NET 4.4.0 позволяет заданию записать в context.Result объект JobRunReport (Succeeded, Failed, Cancelled или Skipped, с кратким описанием и метриками), хранит результат по каждому заданию в истории выполнения и добавляет проверки работоспособности RequireSuccessWithin, которые переходят в состояние Degraded, когда ночное задание перестаёт завершаться успешно.
Как сопоставлять вложенные скобки и сбалансированные теги с помощью балансирующих групп в .NET Regex
Балансирующие группы (?<name>) и (?<-name>) превращают группу захвата в .NET regex в стек, поэтому одним шаблоном можно сопоставлять произвольно вложенные скобки или теги <div>. Полный шаблон, как работает стек, захват внутреннего содержимого через (?<inner-open>) и подводные камни, проверенные на .NET 11 RC1: проверка пустого стека, катастрофический откат, NonBacktracking и смешанные типы скобок.
AddDbContextPool или AddDbContextFactory для параллельного выполнения запросов EF Core
AddDbContextPool выдаёт один scoped DbContext на область DI, поэтому не может выполнять два запроса одновременно. AddDbContextFactory и AddPooledDbContextFactory дают контекст на каждый вызов, а именно это нужно параллельным запросам. Замеры на EF Core 11 RC 1: пулированная фабрика создаёт контекст за 342 нс и 40 Б против 17 мкс и 44 КБ.
Agent Framework 1.24: пакет Anthropic Agent стал стабильным, кроме бета-сервисов
Microsoft.Agents.AI.Anthropic 1.24.0 теряет суффикс preview и зависит от Anthropic 12.53.0. Агенты, созданные из IAnthropicClient, теперь входят в стабильный API, а расширения client.Beta помечены как экспериментальные под MAAIANTHROPIC001, который не срабатывает при вызове через синтаксис методов расширения.
2026-10-07 errorsdotnettesting
Исправление: dotnet test переключается на VSTest в Linux CI, хотя проект использует Microsoft.Testing.Platform
dotnet test выбирает раннер по global.json, который ищется вверх от рабочего каталога. В Linux CI он переключается на VSTest, если файла нет, он назван неверно, ключ написан в неправильном регистре или SDK старше 10.
Префикс ключа, отдельная база данных или отдельный экземпляр Redis для мультитенантного кеширования в ASP.NET Core
Почти для любого мультитенантного приложения ASP.NET Core используйте префикс тенанта на одном общем Redis, выносите на отдельный экземпляр только тенантов с договорными требованиями к изоляции или шумной нагрузкой и не используйте нумерованные базы данных: Redis Cluster, Azure Managed Redis и Redis Cloud поддерживают только базу 0.
Исправление: Invalid column name 'Value' при использовании SqlQueryRaw<T> для скалярного результата в EF Core
EF Core оборачивает скалярный SqlQuery<T> в подзапрос и выбирает столбец с именем Value, как только вы добавляете First, Where, Max или Single. Задайте в SQL псевдоним AS Value или сначала материализуйте результат.
Исправление: There is already an object named 'X' in the database после сброса миграций EF Core
После удаления папки Migrations и создания нового InitialCreate EF Core не знает, что ваши таблицы уже существуют. Удалите базу данных для разработки или запишите новую миграцию в __EFMigrationsHistory, не выполняя её.
Назад Вперёд