我想一個MessageContract添加到我的WCF服務,類似於這個問題是怎麼回事WCF服務:WCF: using streaming with Message Contracts使用MessageContract的崩潰,在啓動時
這裏是例外,我得到: 操作「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>
現在,我認爲這可能有一些與我正在使用的綁定類型有關,但我不完全確定。
如果添加行'Debugger.Launch();'在你的Windows服務主體項目在創建服務主機實例之前,那麼你就可以調試您的實例的啓動問題,並能夠看到什麼是例外。配置文件的一些更多細節也是有用的。 – 2011-05-24 06:03:48
@Sam:謝謝你的提示。這條線以後對我來說將會非常有用。無論如何,這裏是我從中得到的異常消息:**無法加載操作'UploadFile',因爲它具有System.ServiceModel.Channels.Message類型的參數或返回類型或具有MessageContractAttribute和其他不同參數的類型類型。當使用System.ServiceModel.Channels.Message或具有MessageContractAttribute的類型時,該方法不能使用任何其他類型的參數。** – rafale 2011-05-24 06:15:12