Я действительно сомневаюсь, что это будет возможно, если у пользователей будет корневой доступ на их полях, поскольку они легко смогут обойти что-либо, что Вы вставляете их путь.
Так или иначе при использовании OpenDirectory (т.е. Сервер MacOS), можно легко ограничить (некорневых) пользователей для открытия только программ, которые им позволяют открыть. Согласно этому сообщению в блоге, это должно быть возможно даже с локальным каталогом без сервера.
Определенный фон: Этот пользователь ограничения обрабатываются "Пользовательскими настройками", чем-то как GPOS в Windows, и сохранили в OpenDirectory и как файлы MCX на локальной машине, которую сообщение в блоге пытается эмулировать без сервера.
На всех трех серверах точно такие же операции, которые вы тестируете? Если вы работаете с разными наборами данных, это может объяснить, почему вы не видите его на всех серверах.
Это часто является результатом того, что клиент не может достаточно сериализовать / десериализовать. Вы можете увеличить порог, добавив поведение конечной точки (или настраиваемое поведение, если вы используете их в своем проекте):
<endpointBehaviors>
<behavior name="blah">
<dataContractSerializer maxItemsInObjectGraph="2147483646"/>
</behavior>
</endpointBehaviors>
Вам может потребоваться сделать это как в вашем web.config, так и в app.config вашего клиента.