Я пытаюсь добавить MessageContract к моей службе WCF, аналогично тому, что происходит в этом вопросе: WCF: использование потоковой передачи с контрактами сообщений
Вот исключение, которое я получаю: Операция «UploadFile» не может быть загружена, поскольку она имеет параметр или тип возврата типа System.ServiceModel.Channels.Message или тип, имеющий MessageContractAttribute и другие параметры различных типов.При использовании System.ServiceModel.Channels.Message или типов с MessageContractAttribute метод не должен использовать какие-либо другие типы параметров.
Вот мои контракты:
[ServiceContract]
public interface IFile
{
[OperationContract]
bool UploadFile(FileUpload upload);
}
[MessageContract]
public class FileUpload
{
[MessageHeader(MustUnderstand = true)]
public int Username { get; set; }
[MessageHeader(MustUnderstand = true)]
public string Filename { get; set; }
[MessageBodyMember(Order = 1)]
public Stream ByteStream { get; set; }
}
И вотконфигурация привязки, которую я использую в своем app.config:
<netTcpBinding>
<binding name="TCPConfiguration" maxReceivedMessageSize="67108864" transferMode="Streamed">
<security mode="None" />
</binding>
</netTcpBinding>
Сейчас я думаю, что это может иметь какое-то отношение к типу привязки, который я использую, но я неполностью уверен.