В настоящее время я создаю пользовательскую привязку, которая получает HTTP-запросы из другого источника, чем из прослушивающего сокета TCP.
Когда я получаю доступ и открываю канал напрямую, проблем нет.
Однако возникают проблемы при попытке разместить привязку в конечной точке WebServiceHost.
Я вставил сообщения отладки Console.WriteLine () в каждую функцию кода моей пользовательской привязки. Все работает нормально до тех пор, пока не будет вызвана функция OnOpen () моего ChannelListener. После этого ServiceModel просто не хочет вызывать метод OnAcceptChannel (). Нет исключений, нет сообщений об ошибках; он просто висит там и больше не вызывает никакой другой функции моего связывания. Я прокомментировал вывод приложения в код ниже.
WebServiceHost host = new WebServiceHost(
typeof(MyService), new Uri("http://localhost:80"));
host.AddServiceEndpoint(typeof(MyService), new MyWebHttpBinding(), "");
// BINDING CONSTRUCTOR
// BINDINGELEMENT CONSTRUCTOR
host.Open();
// BINDING: CreateBindingElements (multiple times)
// BINDINGELEMENT: Clone
// BINDINGELEMENT CONSTRUCTOR
// BINDINGELEMENT: CanBuildChannelListener
// BINDINGELEMENT: Clone
// BINDINGELEMENT CONSTRUCTOR
// BINDINGELEMENT: CanBuildChannelListener
// BINDINGELEMENT: Clone
// BINDINGELEMENT CONSTRUCTOR
// BINDINGELEMENT: Clone
// BINDINGELEMENT CONSTRUCTOR
// BINDINGELEMENT: Clone
// BINDINGELEMENT CONSTRUCTOR
// BINDINGELEMENT: BuildChannelListener
// CHANNELLISTENER CONSTRUCTOR
// BINDINGELEMENT: Clone
// BINDINGELEMENT CONSTRUCTOR
// BINDING: CreateBindingElements (multiple times)
// CHANNELLISTENER: OnOpen
// CHANNELLISTENER: OnOpen END (function completes properly. last output)
Кто-нибудь из вас знает, что мне нужно изменить в моем приложении, чтобы метод OnAcceptChannel вызывался правильно?
Приветствия