500 ошибка обращения к веб сервису. System.ServiceModel.ServiceActivationException
Добрый день всем.
При попытке обращения к сервису через Js возникает 500 ошибка.
Пример объявления метода Сервиса:
[OperationContract] [WebInvoke(Method = "POST", UriTemplate = "Upload", BodyStyle = WebMessageBodyStyle.Wrapped, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)] public string Upload(Stream fileContent, string fileName, string fileDestination) {
Пример вызова из Js:
var file = files[0]; var reader = new FileReader(); reader.readAsBinaryString(file); reader.addEventListener("load", function(item) { var data = { fileContent: item.target.result, fileName: file.name, fileDestination: destinationPath }; ServiceHelper.callService("KmFileUploadService", "Upload", function(response) { this.console.log(response); }, data, this ); }.bind(this), false);
Кто знает, в чём конкретно может быть проблема? При попытках вызова сервиса (когда у метода всего 1 параметр) не возникает никаких проблем.
Подглядывал по исходникам, везде одно и тоже, т.е. якобы не должно было возникнуть проблем.
Нравится
Максим Шевченко пишет:
https://stackoverflow.com/questions/7999634/parsing-a-stream-and-a-para…
Хм, повторюсь. Я брал пример с исходников. Если там всё работает исправно то и в моем случае должно отрабатывать как часы. Тип роли не играет. Хоть 3 стринга там указать всё равно будет 500 ошибка.
Кисловский Михаил Андреевич,
ну, вот в данном случае как раз играет, поскольку в итоге получается WCF сервис, который имеет несколько другие нотации... тут Вам либо получать сырой поток данных и потом самому парсить, либо использовать какие-то простые типы данных для передачи в сервис... например, кодировать контент файла в BASE64 и вставлять в качестве параметра как string...