У меня есть служба .NET 3.5 WCF.Это выглядит так:
namespace FileUploaderWcfRestService
{
[ServiceContract]
interface IUploaderService
{
[OperationContract(IsOneWay = true)]
[WebInvoke(Method = "POST", UriTemplate = "/UploadFile?fileName={fileName}")]
void UploadFile(string fileName, Stream fileContents);
}
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class UploaderService : IUploaderService
{
public void UploadFile(string fileName, Stream fileContents)
{
// save to disk code
}
}
}
В файле web.config у меня есть настройка конечной точки следующим образом:
<endpoint address=""
binding="webHttpBinding"
contract="FileUploaderWcfRestService.IUploaderService">
На клиенте я пытаюсь вызвать его с помощью объекта WebClient, но неизменно получаю ошибку 415 (Неподдерживаемый тип носителя).
var wc = new WebClient();
string url = "http://localhost:23619/UploaderService.svc/UploadFile?fileName=todo.sdf";
byte[] data = GetBytesFromFile("ToDo.sdf"); // gets the file into a byte array
byte[] resp = wc.UploadData(url, "POST", data);
Я пробовал разные варианты URL, но ничего не помогло.Что мне здесь не хватает?