Я с интересом прочитал следующий пост, поскольку он является точной копией проблемы, с которой я сталкиваюсь (и которая сводит меня с ума) "Чтобы запрос операции UploadFile был потоком, операция должна иметь один параметр, тип которого - Stream."- http://social.msdn.microsoft.com/Forums/en/wcf/thread/80cd26eb-b7a6-4db6-9e6e-ba65b3095267
Я в значительной степени следовал всем кодам / примерам, которые нашел, и все еще не могу обойти эту ошибку - http://blogs.msdn.com/b/carlosfigueira/archive/2008/04/17/wcf-raw-programming-model-receiving-arbitrary-data.aspx
Все, чего я хотел бы добиться, - это опубликоватьизображение (jpeg / png) с устройства Android с использованием стандартного имени файла / параметров потока. Скорее всего, это нечто простое, что я неправильно настроил, неправильно понял или пропустил, но мне нужно решение для доказательства концепции.
public interface IConXServer
{
[OperationContract]
[WebInvoke(UriTemplate = "UploadImage({fileName})", Method="POST")]
void UploadImage(string fileName, Stream imageStream);
}
public class ConXWCFServer : IConXServer
{
public void UploadImage(string fileName, Stream imageStream)
{
//implement image save
}
}
Настройки web.config ->
<standardEndpoints>
<webHttpEndpoint>
<standardEndpoint name="webHttpEndpoint" helpEnabled="false"/>
</webHttpEndpoint>
</standardEndpoints>
<bindings>
<webHttpBinding>
<binding name="webHttpBinding" transferMode="Streamed"/>
</webHttpBinding>
</bindings>
<behaviors>
<endpointBehaviors>
<behavior name="webHttpBehavior">
<webHttp/>
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="false"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
<serviceThrottling maxConcurrentCalls="2147483647" maxConcurrentSessions="2147483647"/>
</behavior>
</serviceBehaviors>
</behaviors>
Использование vs2010 и IIS Express.Если я закомментирую приведенный выше метод, все остальные методы будут работать и возвращать данные, а также запрос wsdl
С уважением и благодарностью Керн