edit 00: ПРИМЕЧАНИЕ. Это сообщение приходит из интерфейса GraphiQL. Когда я попробовал тот же запрос в пользовательском интерфейсе «Banana Cake Pop», при выполнении этого запроса не было получено никакого сообщения.
При попытке создать подписку GraphQL на веб-сервере ASP.NET с помощью Hot Chocolate с точно таким же кодом, который находится в это руководство, я получаю сообщение об ошибке с сервера.
Сообщение об ошибке
{
"errors": [
{
"message": "Result type not supported.",
"extensions": {
"code": "RESULT_TYPE_NOT_SUPPORTED"
}
}
]
}
Я попытался точно воссоздать учебник, но он не работает. Я также не могу получить какой-либо из примеров, работающих с эти примеры. Но только с подписками, запросы и изменения работают отлично.
Конфигурация служб
public void ConfigureServices(IServiceCollection services)
{
services.AddRazorPages();
// [GRAPHQL]
services.AddInMemorySubscriptionProvider();
services.AddGraphQL(SchemaBuilder.New()
.AddQueryType<ShuttleQuery>()
.AddMutationType<ShuttleMutation>()
.AddType<Subscription>()
.BindClrType<string, StringType>()
.Create()
);
}
Конфигурация приложения
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Error");
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseStaticFiles();
app.UseHttpsRedirection();
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapRazorPages();
endpoints.MapControllers();
});
// [GRAPHQL]
app.UseWebSockets().UseGraphQL("/graphql");
app.UseGraphQL("/graphql");
}
Общий тип подписки на основе руководства
public class Subscription
{
[SubscribeAndResolve]
public async IAsyncEnumerable<string> OnMessageAsync()
{
yield return "Hey!";
await Task.Delay(2000);
yield return "It Changed?";
await Task.Delay(2500);
yield return "It Never Changes Because It Doesn't W";
}
}
Я застрял на этом уже несколько дней, любая помощь будет принята с благодарностью.