서버의 파일을 사용하여 처리하는 WebAPI 컨트롤러에 파일을 보내려고합니다. 내가 2 메가 바이트보다 큰 파일을 시도 할 때까지 모든 것이 잘 작동하는 것 같다 ... 이보다 큰 파일은 이상한 예외를 던지고있는 것 같다. 여기 파일 크기가 큰 경우에만 PostAsync를 사용하는 WebAPI가 예외를 throw합니다.
은 조각이다 : 예외는 라인에 발생합니다 var progress = new ProgressMessageHandler();
progress.HttpSendProgress += ProgressEventHandler;
HttpClient client = HttpClientFactory.Create(progress);
client.Timeout = TimeSpan.FromMinutes(20);
try
{
using (
var fileStream = new FileStream(file, FileMode.Open, FileAccess.Read, FileShare.Read, 1024,
useAsync: true))
{
var content = new StreamContent(fileStream, 1024);
var address = new Uri(string.Format("{0}api/File/Upload?submittalId={1}&fileName={2}&documentTypeId={3}", FileServiceUri, tabTag.submittalId, Path.GetFileName(file), documentTypeId));
client.MaxResponseContentBufferSize = 2147483647;
var response = await client.PostAsync(address, content);
var result = response.Content.ReadAsAsync<object>();
if (!response.IsSuccessStatusCode)
continue;
}
:
var response = await client.PostAsync(address, content);
하고 있습니다 : 그것은 심지어 타격 아니에요
No MediaTypeFormatter is available to read an object of type 'Object' from content with media type 'text/html'
처음에 중단 점 f 내 서비스 컨트롤러 그래서 그 코드를 포함 (비록 내가 할 수 있지만 잠재적으로 문제). 위에서 말했듯이 이것은 2MB 이상의 파일에서만 발생합니다. 작은 파일은 잘 작동합니다 (신에게 감사드립니다. 그래서 데모를 보여줄 수 있습니다 ^^).
Anyhelp를 사용하시면 크게 감사하겠습니다.
어떻게 웹 API를 호스팅하고 있습니까? 자기 주인? ASP.NET? –
asp.net을 통해 로컬 및 배포 – timmyda