Если вы можете избавиться от необходимости заново создавать прокси-сервер клиента перед каждым вызовом, это определенно будет полезно для вашей производительности.
НО: делая это, вы должны убедиться, что все исключения на стороне сервера обработаны должным образом (возможно, путем реализации интерфейса IErrorHandler
в вашей службе) и превращены в ошибки SOAP, которые могут быть передан обратно клиенту без ошибок канала.
Если одно исключение ускользает от вас и отправляется обратно клиенту как «обычное» исключение .NET, канал (канал связи между вашим клиентом и вашим сервером) будет неисправен - > т. е. признаны бесполезными.
В таком случае вам необходимо сначала проверить это состояние (у канала есть свойство .State
), и если вы обнаружите неисправный канал, вы ничего не можете сделать, кроме как заново создать клиентский прокси перед вызовом методы на нем.