Клиенты. Все, Клиенты. Вызов и Клиенты. Другие, выбрасывающие исключение TypeLoadException

У меня есть простая настройка Typed Hub через интерфейс. Я могу успешно подключиться к SignalR Hub.

namespace POC.WebSocket
{
    public class ApiResultHub : Hub<IApiResultHubClient>
    {
        public async Task SendMessage(string user, string message)
        {
            await Clients.All.ReceiveMessage(user, message);
        }

        public override Task OnConnectedAsync()
        {
            Clients.Caller.ReceiveMessage("newUser", $"{Context.ConnectionId}");
            return base.OnConnectedAsync();
        }
    }
}

Однако, когда я пытаюсь вызвать метод-концентратор на стороне клиента, он выдает следующее исключение:

Вот мои другие файлы классов: Startup.cs

namespace POC.WebSocket
{
    public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }

        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddCors(o => o.AddPolicy("CorsPolicy", builder =>
            {
                builder
                    .AllowAnyMethod()
                    .AllowAnyHeader()
                    .WithOrigins("https://localhost:44324", "https://localhost:44326")
                    .AllowCredentials();
            }));
            services.AddSignalR();
            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
        }

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseHsts();
            }

            app.UseCors("CorsPolicy");
            app.UseSignalR(routes =>
            {
                routes.MapHub<ApiResultHub>("/apiResult");
            });

            app.UseHttpsRedirection();
            app.UseMvc();
        }
    }
}

IApiResultHubClient`T.cs

namespace POC.Common
{
    public interface IApiResultHubClient
    {
        Task ReceiveMessage(string user, string message);
        Task SendApiResponse<T>(ApiResult<T> data);
    }
}

Кто-нибудь еще видел эту проблему? Я видел несколько подобных проблем с возможностью подключения к самому концентратору. Однако, как уже упоминалось, я могу успешно подключиться к концентратору, но не могу разрешить Clients.All, Clients.Caller или Clients.Others.

Все библиотеки обновлены сегодня:

.Net Core версия 2.1.4 .Net SignalR Core версия 1.0.3

Исправления: Найдены детали исключения:

Метод 'SendApiResponse' в типе 'Microsoft.AspNetCore.SignalR.TypedClientBuilder.IApiResultHubClientImpl' из сборки 'Microsoft.AspNetCore.SignalR.TypedClientBuilder, Version=0.0.0.0, культура = нейтральная, PublicKeyToken=null = null.

0 ответов

Другие вопросы по тегам