Потоковая передача Mjpeg с использованием .NET 8 в IIS 10C#

Место общения программистов C#
Ответить
Anonymous
 Потоковая передача Mjpeg с использованием .NET 8 в IIS 10

Сообщение Anonymous »

Я создаю API в .NET 8, который при вызове будет подключаться к IP-камере на серверной стороне и передавать содержимое (mjpeg) в браузер клиента.
Я Я не знаю, как правильно это сделать, но приведенный ниже код предназначен для работы в Kestrel/Visual Studio.
Однако, когда я размещаю свое приложение на IIS 10, все становится странным.
Клиент подключится к серверу, но видео не будет отображаться.
С помощью DevTools я вижу, что запрос зависает в состоянии «Загрузка с сервера». Если я вручную отключу соединение с IP-камерой на серверной стороне, браузер быстро отобразит несколько кадров из потока, и запрос будет завершен.
В дополнение к этому коду я Я пытался прочитать поток IP-камеры в буфер, а затем записать его в тело ответа. Однако это работает только в Kestrel, а не в IIS. Мне интересно, нужно ли мне что-то настраивать в IIS? Я работаю над этим уже пару недель, и у меня нет идей.
Серверная часть
public async Task Video()
{
AppContext.SetSwitch("System.Net.Http.UseSocketsHttpHandler", false);
string baseAddress = "http://192.168.1.100";
string clientId = "Username";
string clientSecret = "Password";

var credCache = new CredentialCache
{
{ new Uri(baseAddress), "Digest", new NetworkCredential(clientId, clientSecret) }
};

HttpClient httpClient = new HttpClient(new HttpClientHandler { Credentials = credCache });
httpClient.BaseAddress = new Uri(baseAddress);

var response = await httpClient.GetStreamAsync("/cgi-bin/mjpg/video.cgi?channel=1&subtype=1");

HttpContext.Response.Headers.ContentType = "multipart/x-mixed-replace; boundary=--myboundary";

return response;
}

HTML

Изображение



Подробнее здесь: https://stackoverflow.com/questions/783 ... -on-iis-10
Ответить

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

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

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

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

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