Я попробую это после разговора с нашим специалистом WCF, предоставляющим услуги
аюсь заставить следующий фрагмент кода работать в консольном приложении Mono и в качестве конечной цели в приложении MonoTouch. Код отлично работает под VS2008 с помощью консольного приложения Windows. Когда я запускаю его как консольное приложение Mono на Mac, я получаю
Необработанное исключение: System.NotImplementedException: запрошенная функция не реализована. в System.ServiceModel.Channels.SecurityBindingElement.CanBuildChannelFactory [IDuplexChannel] (System.ServiceModel.Channels.BindingContext context) [0x00000] в: 0
В MonoTouch я получаю эту ошибку:
Необработанное исключение: System.ServiceModel.FaultException: при проверке безопасности сообщения произошла ошибка. в System.ServiceModel.MonoInternal.ClientRuntimeChannel.Request (od параметра System.ServiceModel.Description.OperationDescription, параметры System.Object []) [0x00188] в /Developer/MonoTouch/Source/mono/mcs/class/SystemlService. ServiceModel / ClientRuntimeChannel.cs: 545
Может ли кто-нибудь объяснить, что не так? Для простоты не требуется app.config.
using System;
using MonoAPI3.BLAPI3Session;
using Brainloop.ServiceLibrary.DataModel;
using System.ComponentModel;
using System.ServiceModel;
public static void Main()
{
System.Net.ServicePointManager.ServerCertificateValidationCallback += (se, cert, chain, sslerror) => { return true; };
var oClient = new SessionServiceClient( new BasicHttpBinding( BasicHttpSecurityMode.TransportWithMessageCredential )
{
CloseTimeout = new TimeSpan( 0, 0, 10 ),
OpenTimeout = new TimeSpan( 0, 1, 0 ),
ReceiveTimeout = new TimeSpan( 0, 1, 0 ),
SendTimeout = new TimeSpan( 0, 1, 0 ),
AllowCookies = false,
BypassProxyOnLocal = false,
HostNameComparisonMode = HostNameComparisonMode.StrongWildcard,
MaxBufferSize = 65536,
MaxBufferPoolSize = 524288,
MaxReceivedMessageSize = 65536,
MessageEncoding = WSMessageEncoding.Text,
TextEncoding = System.Text.Encoding.UTF8,
TransferMode = TransferMode.Buffered,
UseDefaultWebProxy = true,
ReaderQuotas = new System.Xml.XmlDictionaryReaderQuotas()
{
MaxDepth = 32,
MaxStringContentLength = 8192,
MaxArrayLength = 16384,
MaxBytesPerRead = 4096,
MaxNameTableCharCount = 16384
}
},
new EndpointAddress( "https://service.myserver.com/Service/V3/Session.svc" ) );
oClient.ClientCredentials.UserName.UserName = "[email protected]";
oClient.ClientCredentials.UserName.Password = "pwd";
SessionInfo oInfo = oClient.StartSession();
Console.WriteLine( "SESSION HASH: " + oInfo.SessionHash );
}