W moim kontrolerze WEB Api 2 chcę zażądać pliku z jednej strony i zwrócić ten plik z kontrolera. Oto kodBłąd 502 przy przekierowaniu strumienia z innej strony
public HttpResponseMessage GetLecture()
{
HttpWebRequest request = WebRequest.CreateHttp("http://openmedia.yale.edu/cgi-bin/open_yale/media_downloader.cgi?file=/courses/spring11/phil181/mp3/phil181_01_011111.mp3");
request.Referer = @"http://oyc.yale.edu/courses/";
var receivedResponse = request.GetResponse();
HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);
response.Content = new StreamContent(receivedResponse.GetResponseStream());
response.Content.Headers.ContentType = MediaTypeHeaderValue.Parse(receivedResponse.ContentType);
response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment");
response.Content.Headers.ContentDisposition.FileName = "phil181_01_011111.mp3";
response.Content.Headers.ContentLength = receivedResponse.ContentLength;
return response;
}
Lokalnie działa dobrze i mogę pobrać plik, ale gdy wdrożyć go do Azure Dostaję 502 Error. Serwer sieci Web otrzymał nieprawidłową odpowiedź, działając jednocześnie jako brama lub serwer proxy.
Logging pokazuje, że nie jest on po powrocie odpowiedzi więc nie ma wyjątków podczas wykonywania metody.
Jest to plik ~ 50 MB. W przypadku mniejszych plików kod działa poprawnie.
Jak sprawić, aby ten kod działał na platformie Azure w przypadku plików o wielkości 50 MB?
Co jeśli czytasz całą odpowiedź (do celów testowych) bez przesyłania strumieniowego w sposób drastyczny? Może czytanie odpowiedzi podczas hostingu na lazurach po prostu nie udaje się z jakiegoś powodu? – Evk
Może to być spowodowane tym, że żądanie trwa długo. Sprawdź [to] (https://docs.microsoft.com/en-gb/azure/app-service/app-service-web-troubleshoot-http-502-http-503) Spróbuj najpierw pobrać mały plik. – Shah
@Shah Wygląda na to, że żądanie nie trwa długo. Cała metoda zajmuje mniej niż sekundę, aby wykonać. –