Поток SignalR доступен локально, больше не доступен после развертывания с помощью DockerC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Поток SignalR доступен локально, больше не доступен после развертывания с помощью Docker

Сообщение Anonymous »

Я работаю с ASP.Net уже около 3 месяцев и сегодня хотел взглянуть на потоки SignalR. Локально все работает нормально, но как только я создаю его через Github Actions с Docker и разворачиваю на своем сервере Ubuntu (Docker и Portainer больше ничего не запускают), поток SignalR становится недоступным. Все остальные конечные точки (GET, POST и т. д.) полностью доступны.
Program.cs

Код: Выделить всё

using System.Text.Json.Serialization;
using Microsoft.AspNetCore.ResponseCompression;
using mushroom_backend;
using mushroom_backend.Hubs;
using mushroom_backend.Interfaces;
using mushroom_backend.Services;

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddControllers();
builder.Services.AddEndpointsApiExplorer();

builder.Services.AddSwaggerGen();

builder.Services.Configure(
builder.Configuration.GetSection("MushroomStoreDatabase"));

builder.Services.AddSingleton();
builder.Services.AddHttpContextAccessor();
builder.Services.AddProblemDetails();
builder.Services.AddRouting(options => options.LowercaseUrls = true);

builder.Services.AddSignalR();
builder.Services.AddResponseCompression(opts =>
{
opts.MimeTypes = ResponseCompressionDefaults.MimeTypes.Concat(
["application/octet-stream"]);
});

builder.Services.AddCors(options =>
{
options.AddDefaultPolicy(policy =>
policy.AllowAnyMethod().AllowAnyOrigin().AllowAnyHeader().SetPreflightMaxAge(TimeSpan.FromSeconds(3600))
.SetIsOriginAllowedToAllowWildcardSubdomains());
});

var app = builder.Build();

if (app.Environment.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI();
}

app.MapControllers();
app.MapHub("/api/hub/logHub");
app.UseResponseCompression();

app.Run();
Файл Docker

Код: Выделить всё

FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
ENV ASPNETCORE_URLS=http://0.0.0.0:5070
WORKDIR /app
EXPOSE 5070

FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
WORKDIR /src
COPY ["mushroom_backend.csproj", "./"]
RUN dotnet restore "mushroom_backend.csproj"
COPY . .
WORKDIR "/src/"
RUN dotnet build "mushroom_backend.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "mushroom_backend.csproj" -c Release -o /app/publish /p:UseAppHost=false

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENV ASPNETCORE_ENVIRONMENT=Production
ENTRYPOINT ["dotnet", "mushroom_backend.dll", "--server.urls", "http://+:5070"]
appsettings.json

Код: Выделить всё

{
"MushroomStoreDatabase": {
"ConnectionString": "mongodb://felix:
@:7070/",
"DatabaseName": "MushroomStore",
"FavoritesCollectionName": "Favorites"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*"
}

LogHub.cs

Код: Выделить всё

using Microsoft.AspNetCore.SignalR;

namespace mushroom_backend.Hubs;

public class LogHub(ILogger logger) : Hub
{
private readonly ILogger _logger = logger;

public override Task OnConnectedAsync()
{
_logger.LogInformation("New Connection: [{ConnectionId}]", Context.ConnectionId);
return base.OnConnectedAsync();
}
}
Даже после долгих поисков проблему не нашел. Я уже несколько раз перезапускал проект с 0, перезапускал сервер, на котором всё работает, настраивал конфиги и тд. Может быть, кто-то здесь сможет мне помочь. Прикреплены мои program.cs, appsettings.json, dockerfile и файл хаба, который пока мало что делает.
Заранее спасибо

Подробнее здесь: https://stackoverflow.com/questions/788 ... ith-docker
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как заставить клиент .Net Framework SignalR подключаться к серверу .Net Core SignalR?
    Anonymous » » в форуме C#
    0 Ответы
    38 Просмотры
    Последнее сообщение Anonymous
  • Как заставить клиент .Net Framework SignalR подключаться к серверу .Net Core SignalR?
    Anonymous » » в форуме C#
    0 Ответы
    27 Просмотры
    Последнее сообщение Anonymous
  • Как заставить клиент .Net Framework SignalR подключаться к серверу .Net Core SignalR?
    Anonymous » » в форуме C#
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous
  • Vue Signalr с проектом jQuery - События Signalr работают только на ручном обновлении на Dev Server
    Anonymous » » в форуме Jquery
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Vue Signalr с проектом jQuery - События Signalr работают только на ручном обновлении на Dev Server
    Anonymous » » в форуме Jquery
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»