В моем Program.cs:
ScanAndMapGrpcServices(app);
static void ScanAndMapGrpcServices(WebApplication app)
{
var currentAssembly = Assembly.GetExecutingAssembly();
var allTypes = currentAssembly.GetTypes().Concat(
currentAssembly
.GetReferencedAssemblies()
.SelectMany(assemblyName => Assembly.Load(assemblyName).GetTypes()))
.Where(type => type.Namespace == ""
&& !type.IsInterface
&& !type.IsAbstract);
Console.WriteLine(allTypes.Count());
foreach (var type in allTypes)
{
var method = typeof(GrpcEndpointRouteBuilderExtensions).GetMethod("MapGrpcService")?.MakeGenericMethod([type]);
object? invokedBuilder = method?.Invoke(app, [app]);
if (invokedBuilder is GrpcServiceEndpointConventionBuilder builder)
{
_ = builder.RequireCors();
}
}
}
При работе в режиме Release я получил эту ошибку
System.ArgumentException: 'GenericArguments[0], 'BlazorSchool.BLServer.Services.ReadTutorialService+d__2', on 'Microsoft.AspNetCore.Builder.GrpcServiceEndpointConventionBuilder MapGrpcService[TService](Microsoft.AspNetCore.Routing.IEndpointRouteBuilder)' violates the constraint of type 'TService'.'
Но в режиме отладки все в порядке.
На первый взгляд мне показалось, что мои сборки обрезаны, но потом я печатаю Console.WriteLine(allTypes.Count());, и режим отладки, и режим выпуска возвращают 22.
Код службы, выдающей ошибку:
public class ReadTutorialService(MyContext myContext, IConfiguration configuration) : ReadTutorialPageData.ReadTutorialPageDataBase
{
public override async Task RequestTreeData(TreeDataRequest request, ServerCallContext context)
{
}
}
Подробнее здесь: https://stackoverflow.com/questions/786 ... lease-mode
Отражение ошибок служб grpc выдает только в режиме выпуска ⇐ C#
Место общения программистов C#
-
Anonymous
1719281077
Anonymous
В моем Program.cs:
ScanAndMapGrpcServices(app);
static void ScanAndMapGrpcServices(WebApplication app)
{
var currentAssembly = Assembly.GetExecutingAssembly();
var allTypes = currentAssembly.GetTypes().Concat(
currentAssembly
.GetReferencedAssemblies()
.SelectMany(assemblyName => Assembly.Load(assemblyName).GetTypes()))
.Where(type => type.Namespace == ""
&& !type.IsInterface
&& !type.IsAbstract);
Console.WriteLine(allTypes.Count());
foreach (var type in allTypes)
{
var method = typeof(GrpcEndpointRouteBuilderExtensions).GetMethod("MapGrpcService")?.MakeGenericMethod([type]);
object? invokedBuilder = method?.Invoke(app, [app]);
if (invokedBuilder is GrpcServiceEndpointConventionBuilder builder)
{
_ = builder.RequireCors();
}
}
}
При работе в режиме Release я получил эту ошибку
System.ArgumentException: 'GenericArguments[0], 'BlazorSchool.BLServer.Services.ReadTutorialService+d__2', on 'Microsoft.AspNetCore.Builder.GrpcServiceEndpointConventionBuilder MapGrpcService[TService](Microsoft.AspNetCore.Routing.IEndpointRouteBuilder)' violates the constraint of type 'TService'.'
Но в режиме отладки все в порядке.
На первый взгляд мне показалось, что мои сборки обрезаны, но потом я печатаю Console.WriteLine(allTypes.Count());, и режим отладки, и режим выпуска возвращают 22.
Код службы, выдающей ошибку:
public class ReadTutorialService(MyContext myContext, IConfiguration configuration) : ReadTutorialPageData.ReadTutorialPageDataBase
{
public override async Task RequestTreeData(TreeDataRequest request, ServerCallContext context)
{
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/78665113/reflection-on-grpc-services-throw-error-only-in-release-mode[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия