Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

1K
Visualizações
La conexión de SignalR falló cuando no estaba en localhost

Uso de Blazor como cliente. NET 6 tanto en el cliente como en el servidor.

Ya he estado intentando cualquier posible solución durante horas para esto y estoy atascado. El lado del cliente y el lado del servidor están en el mismo servidor (respaldado por wasm) pero no funciona cuando intenta conectarse al servidor a través de un dominio remoto, no localhost, que funcionó en la etapa de desarrollo.

Me he estado preguntando acerca de CORS, pero tengo mi CORS configurado correctamente y sigue igual, incluso si llamo al método AddAuthentication. Además, he intentado habilitar el servicio Websocket en funciones adicionales en IIS. Tenga en cuenta que estoy ejecutando esto en el servidor con publicación dotnet.

Consola del lado del cliente: ingrese la descripción de la imagen aquí

Detalles del websocket del lado del cliente: ingrese la descripción de la imagen aquí

Configuraciones relevantes del lado del servidor en el servidor que pueden afectar esto:

En appsettings.json:

 { "Kestrel": { "EndPoints": { "Http": { "Url": "https://0.0.0.0:443" } } },

En Inicio/Programa

 // CORS (before SignalR) builder.Services.AddCors(options => options.AddDefaultPolicy(builder => builder.AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod())); //Add SignalR builder.Services.AddSignalR(opt => { opt.EnableDetailedErrors = true; opt.HandshakeTimeout = TimeSpan.FromSeconds(120); }); ; builder.Services.AddResponseCompression(opt => { opt.MimeTypes = ResponseCompressionDefaults.MimeTypes.Concat(new[] { "application/octet-stream" }); }); // SignalR response compression app.UseResponseCompression(); // log requests statuses in console if (true) { app.Use(async (context, next) => { await next.Invoke(); Console.WriteLine( $"{DateTime.Now.Hour} : {DateTime.Now.Minute} : {DateTime.Now.Second} - response: {context.Response.StatusCode}"); }); } // Handles exceptions and generates a custom response body app.UseExceptionHandler("/errors/500"); // Handles non-success status codes with empty body app.UseStatusCodePagesWithReExecute("/errors/{0}"); app.UseHttpsRedirection(); app.UseBlazorFrameworkFiles(); app.UseStaticFiles(); // CORS app.UseCors(); app.UseRouting(); app.UseAuthentication(); app.UseAuthorization(); app.MapControllers(); // Blazor app.MapFallbackToFile("index.html"); // Map SignalR Hubs app.UseEndpoints(endpoints => { endpoints.MapHub<SmsHub>("/smshub"); });

Múltiples códigos de estado 204 registrados en el servidor (debido a esto), lo que no debería estar sucediendo: ingrese la descripción de la imagen aquí

NOTA IMPORTANTE: como puede notar, en algunos casos, el OnConnectedAsync del concentrador se llama y se registra con la información que proporciona el usuario. Tal vez en algunos de los diferentes métodos que se intentan conectar al socket, pero cerrar la ventana del navegador no finalizará esa conexión hasta que se agote el tiempo de espera. Finalmente, quiero agregar este ejemplo de servidor en vivo que usa el proxy de Cloudflare, pero no tiene nada que ver con él.

Otorgaré la respuesta válida. Gracias.

over 4 years ago · Santiago Trujillo
4 Respostas
Responde à pergunta

0

Intente habilitar la compatibilidad con Websocket en IIS. Mira esto...

over 4 years ago · Santiago Trujillo Relatório

0

No estoy seguro si esto ayuda. Pero haz el equivalente .net 6 de esto:

 readonly string MyAllowSpecificOrigins = "_myAllowSpecificOrigins"; options.AddPolicy(name: MyAllowSpecificOrigins, builder => { builder.WithOrigins("https://*******************").AllowAnyHeader().AllowAnyMethod().AllowCredentials(); }); app.UseCors(MyAllowSpecificOrigins);

Tuve algunos problemas de cors con errores no descriptivos y la definición explícita del origen lo resolvió.

over 4 years ago · Santiago Trujillo Relatório

0

Buenas noticias.

Es bastante obvio que el problema no ocurre con el servicio Azure SignalR y sí, no ocurre. Pero de todos modos no es la solución correcta, además te cuesta 50 dólares al mes.

over 4 years ago · Santiago Trujillo Relatório

0

Abra su cmd con el administrador. Ejecute debajo del comando y pruebe.

 netsh http add urlacl url=https://<your_ip_addr>:443/ user="NT AUTHORITY\Authenticated Users"
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda