У меня следующий код клиента WCF:
string add = String.Format("http://localhost:{0}/ServiceRequestRest",accessPort);
var cf = new ChannelFactory<IServiceRequestRest>(new WebHttpBinding(), add);
cf.Endpoint.Behaviors.Add(new WebHttpBehavior());
busService = cf.CreateChannel();
busService.DoMyStuff("hello",null);
Когда у меня активирован «разрыв первого шанса», последняя строка кода генерирует серию исключений.Первое исключение:
System.InvalidOperationException occurred
Message="Envelope Version 'EnvelopeNone (http://schemas.microsoft.com/ws/2005/05/envelope/none)' does not support adding Message Headers."
Source="System.ServiceModel"
StackTrace:
at System.ServiceModel.Channels.MessageHeaders.ValidateHeaderKind(HeaderKind headerKind)
Я не знаю, что я пытаюсь «добавить заголовки сообщений», но я решил продолжить выполнение и сразу получить следующее исключение:
System.Net.WebException occurred
Message="The underlying connection was closed: The connection was closed unexpectedly."
Source="System"
StackTrace:
at System.Net.HttpWebRequest.GetResponse()
После всего сказанного мне трудно понять, в чем проблема.Любые подсказки?
Обновление : Невозможно сериализовать тип возврата моего вызова REST, как я узнал из другого сайта .Это само по себе может вызвать эту проблему, но после того, как я исправил ее, у меня все еще была та же проблема.Когда я использую обычный блок catch для исключения, все, что я получаю, это «соединение было неожиданно закрыто».Что еще я мог упустить?
Обновление2 : Мне кажется, я нашел последнюю проблему.Я получаю помехи от Skype .Код работает сейчас.:)