#c# #web-services #wcf #wsdl #xamarin
#c# #веб-службы #wcf #wsdl #xamarin
Вопрос:
Я пытаюсь создать приложение Xamarin, которое будет работать с веб-сервисом через WCF через WSDL. У меня есть файл .wsdl и файл .cs, сгенерированные SvcUtil с использованием файла .wsdl.
Когда я сделаю следующий:
ServiceClient _mobileService;
public void Initialize()
{
var binding = new BasicHttpBinding(BasicHttpSecurityMode.TransportWithMessageCredential)
{
MaxReceivedMessageSize = long.MaxValue,
MaxBufferSize = int.MaxValue,
MaxBufferPoolSize = long.MaxValue,
ReceiveTimeout = TimeSpan.FromMinutes(0.5),
SendTimeout = TimeSpan.FromMinutes(0.5),
OpenTimeout = TimeSpan.FromMinutes(0.5),
CloseTimeout = TimeSpan.FromMinutes(0.5),
ReaderQuotas =
{
MaxArrayLength = int.MaxValue,
MaxBytesPerRead = int.MaxValue,
MaxDepth = int.MaxValue,
MaxNameTableCharCount = int.MaxValue,
MaxStringContentLength = int.MaxValue
},
Security = {Mode = BasicHttpSecurityMode.Transport}
};
var endpoint = new EndpointAddress("https://ThereIsMySite/PathToService");
_mobileService = new ServiceClient(binding, endpoint);
_mobileService.InnerChannel.OperationTimeout = TimeSpan.FromMinutes(1);
Я получил исключение:
System.InvalidOperationException: Operation 'activateAsync' contains a message with parameters. Strongly-typed or untyped message can be paired only with strongly-typed, untyped or void message.
at System.ServiceModel.Dispatcher.OperationFormatter.Validate (System.ServiceModel.Description.OperationDescription od, Boolean isRpc, Boolean isEncoded) [0x00000] in <filename unknown>:0
at System.ServiceModel.Dispatcher.OperationFormatter..ctor (System.ServiceModel.Description.OperationDescription od, Boolean isRpc, Boolean isEncoded) [0x00000] in <filename unknown>:0
Затем я попробовал тот же код в консольном проекте (.Net 4.5), и ошибки нет.
Есть ли способ заставить его работать на Xamarin?
Заранее благодарю.
Комментарии:
Ответ №1:
К сожалению, базовый режим httpsecuritymode.TransportWithMessageCredential пока не поддерживается в Mono, возможно, вы захотите использовать базовый httpsecuritymode.Транспорт в данный момент.
ссылка: http://forums.xamarin.com/discussion/comment/44741/#Comment_44741