WCF 4.0 REST Загрузить файл MS-Excel - PullRequest
2 голосов
/ 18 января 2011

Я пытаюсь загрузить файл MS-Excel через службу WCF-REST. Я использовал решение, приведенное в посте ниже: Проблема загрузки образа службы RESTful WCF Мой метод POST объявлен как:

  [OperationContract]
                [WebInvoke(Method = "POST", UriTemplate = "/RFQ")]
                [WebContentType("application/octet-stream")]
                void UploadRFQDoc(Stream fileContents);

Когда я отлаживаюсь, содержимое потока в порядке, пока не будет выполнен вызов, и когда я присоединяю службу к отладке, параметр Stream fileContents становится нулевым, и служба возвращается с [Bad Request]. Я не отправляю большой файл (это всего лишь 50 КБ). Я использую HttpClient для вызова почты. Вот код клиента (RestClient - это HttpClient).

 protected void Post(string uri, Stream stream, int length)
        {
            var content = HttpContent.Create(output => CopyToStream(stream, output, length), "application/octet-stream", length);
            Uri relativeUri = new Uri(uri, UriKind.Relative);

            var resp = RestClient.Post(relativeUri, content);

            ProcessResponse(resp);
        }

        void CopyToStream(Stream input, Stream output, int length)
        {
            var buffer = new byte[length];
            var read = input.Read(buffer, 0, Convert.ToInt32 (length));

            output.Write(buffer, 0, read);
        }

Любая подсказка, что еще может пойти не так. Большое спасибо.

1 Ответ

1 голос
/ 19 января 2011

Атрибут [WebContentType ("application / octet-stream")] здесь не нужен.Я закомментировал это, и все работало нормально:).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...