我使用NetTcpBinding和Streamed TransferMode。現在我試圖實現一個回調作爲雙工,但我得到了錯誤信息。可以將NetTcpBinding與Streamed TransferMode結合使用並使用(雙工)回調服務契約? 背景: - 我使用NetTcpBinding,因爲它速度很快並且沒有nat問題 - 我使用流式傳輸模式,因爲我也傳輸大文件。WCF,NetTcpBinding,流傳輸模式可以是雙工的?
的配置:
<netTcpBinding>
<binding name="DuplexBinding" transferMode="Streamed"
closeTimeout="00:10:00" openTimeout="00:10:00" receiveTimeout="00:10:00" sendTimeout="00:10:00" transactionFlow="false" hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="104857600" maxReceivedMessageSize="104857600"
>
<readerQuotas maxDepth="104857600" maxStringContentLength="104857600" maxArrayLength="104857600" maxBytesPerRead="104857600" maxNameTableCharCount="104857600"/>
<reliableSession enabled="true" ordered="true" inactivityTimeout="00:10:00"/>
<security mode="None" />
</binding>
</netTcpBinding>
合同:
IMyDataService.cs
[ServiceContract(CallbackContract = typeof(INotifyCallback))]
public interface IMyDataService
{
[OperationContract(ProtectionLevel = System.Net.Security.ProtectionLevel.None)]
[FaultContract(typeof(MyFaultException))]
[FaultContract(typeof(MyUserAlreadyLoggedInFaultException))]
[FaultContract(typeof(AuthorizationFaultException))]
Guid Authenticate(Guid clientID, string userName, string password, bool forceLogin);
}
INotifyCallback.cs
public interface INotifyCallback
{
[OperationContract(IsOneWay = true)]
void ShowMessageBox(string message);
}
我有得到錯誤了when設置transferMode = 「流」
合同要求雙面打印,但綁定 'NetTcpBinding的'不支持 它或未正確配置以支持它。
每個人都可以建議感謝
您是否使用DuplexChannelFactory連接到服務器(或者只是一個ChannelFactory)? – EthanB
我使用IMetadataExchange添加servicereferece並創建客戶端代理 –