Не было прослушивание конечных точек в <URI>, которое могло бы принять сообщение. Это часто вызвано неправильным адресом или действием SOAP

У меня есть два клиента WCF, которые используют сторонний веб-сервис.

Эти два клиента выполняют один и тот же вызов метода. В одном случае он работает каждый раз, в другом я получаю сообщение "Не было прослушивания конечной точки...".

Насколько я могу судить, единственное различие между двумя вызовами состоит в том, что они находятся в двух разных клиентских exes, а это значит, что файлы .exe.config не совпадают. Они используют один и тот же исходный код, который разделяется между двумя проектами в Visual Studio, поэтому не отличается.

Но на самом деле содержание этих двух файлов exe.config(почти) одинаково; единственное различие заключается в том, что exe.config для неудавшегося вызова имеет более высокие значения для атрибутов maxBufferSize и maxReceivedMessageSize элемента привязки, а также большее значение sendTimeout.

Ответ 1

На самом деле это не ответ, это объяснение.

Проблема заключается в том, что два клиента выше, один из них - настольное приложение Windows Forms, а другое - служба Windows. Они использовали одну и ту же базу кода (например, экземпляр класса) и почти те же файлы app.config.

НО служба, зарегистрированная под SystemAccount, и на некоторых сайтах, похоже, не имеет прав/профилей для доступа в Интернет и поэтому не может найти конечную точку веб-службы. Очевидный. Когда вы знаете.