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...