Подытожим немного.
При штатном формировании референсов (без поддержки Framework 4.5) система при обращении к dll ищет app.config в папке, где лежит dl.
Поиск файла app.config происходит при вызове new SoapClient(). Потому что штатная dll не позволяет при инициализации soapclient передавать в конструктор биндинги и эндпойнты.
С поддержкой 4.5 начинаются проблемы. Сгенерённая dll при инициализации soapclient ищет для себя app.config в каталоге, где расположено вызвавшее её приложение (папка Bin аоса).
Если сгенерить dll нештатно, то при инициализации soapClient появляется возможность самостоятельно создать биндинги и эндпойнты, чтобы исключить попытки поиска файла app.config.
Ваш пример навёл меня на мысли, что возможно алгоритм поиска app.config зависит от конкретной версии Framework в Windows.
Например, если сгенерить dll на сервере с Framework 4.5, то app.config будет искаться в папке dll. А если сгенерить dll на сервере с версией 4.6+ , то app.config будет искаться в папке Bin.
К сожалению, не могу проверить это. У меня минимальная версия фрэймворка на серверах - 4.7.
__________________
Дмитрий
|