У меня есть приложение клиент/сервер через ретрансляцию через окна azure. Это хорошо работает с использованием консольного приложения для сервера и клиента.Реле Azure Servicebus на Windows Phone
Теперь я хочу использовать Windows Phone в качестве клиента, но по какой-то причине я не могу назвать servicebus. я не могу добавить веб-ссылку и при ориентации на URL в браузере я получаю следующее сообщение:
<s:Fault xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><faultcode xmlns:a="http://schemas.microsoft.com/ws/2005/05/addressing/none">a:ActionNotSupported</faultcode><faultstring xml:lang="nl-NL">The message with Action 'GET' cannot be processed at the receiver, due to a ContractFilter mismatch at the EndpointDispatcher. This may be because of either a contract mismatch (mismatched Actions between sender and receiver) or a binding/security mismatch between the sender and the receiver. Check that sender and receiver have the same contract and the same binding (including security requirements, e.g. Message, Transport, None).</faultstring></s:Fault>
Я ввел следующий код в app.config сервера:
// sb:// binding
Uri sbUri = ServiceBusEnvironment.CreateServiceUri("sb", serviceNamespace, "blabla");
var sbBinding = new NetTcpRelayBinding(EndToEndSecurityMode.Transport, RelayClientAuthenticationType.None);
serviceHost.AddServiceEndpoint(typeof(IMyContract), sbBinding, sbUri);
// https:// binding (for Windows Phone etc.)
Uri httpsUri = ServiceBusEnvironment.CreateServiceUri("https", serviceNamespace, "https/" + "blabla");
var httpsBinding = new BasicHttpRelayBinding(EndToEndBasicHttpSecurityMode.Transport, RelayClientAuthenticationType.None);
serviceHost.AddServiceEndpoint(typeof(IMyContract), httpsBinding, httpsUri);
И перед тем, как открыть хост, я устанавливаю конечные точки в открытый режим.
Что еще можно или нужно сделать, чтобы сделать эту работу с телефоном Windows?
Даже я рад видеть, что я в правильном направлении, я не могу понять, как вызвать веб-сервис через basichttpbinding ... Пытаясь использовать обычный вызов, я не могу используйте servicehost и канал, так как версия System.ServiceModel 4.0 недоступна в проекте телефона Windows –
Теперь это работало как шарм! спасибо, все работает сейчас :) –