Exemplo prático de upload de arquivo AJAX para o serviço WCF
Eu estou procurando um exemplo de uma chamada ajax para streaming de dados para um serviço WCF. Eu estou sempre recebendo um erro. Qualquer ajuda apreciada, ou mesmo links para blogs com uma solução. Esta é minha classe de serviço WCF
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)]
public class Images : IImages
{
string IImages.UploadImage(string fileKey, Stream imageStream)
{
using (var fileStream = File.Create(@"Images\" + fileKey))
{
imageStream.CopyTo(fileStream);
}
return "done";
}
}
e meu contrato é
[OperationContract(Name = "UploadImage")]
[WebInvoke(UriTemplate = "?file_key={fileKey}", Method = "POST", ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Bare)]
string UploadImage(string fileKey, Stream imageStream);
Eu tenho ligação de fluxo web.config
<binding name="PublicStreamBinding"
maxReceivedMessageSize="2000000000" transferMode="Streamed">
<security mode="None" />
</binding>
minha chamada do cliente ajax é assim
var data = '{"image":"' + uri + '"}'
$.ajax({
url: GetServerUrl()+"images.svc/?file_key="+options.fileKey,
type: "POST",
contentType: "application/json",
data: data,
success: function (result) {
console.log("SUCCESS");
},
error: function (jqXHR, textStatus, errorThrown) {
console.log("error in transfer::" + jqXHR.responceText);
}
});