Прежде всего: где вы добавили поведение <serviceDebug>
и как? Можете ли вы показать нам? <serviceDebug>
необходимо добавить в раздел <serviceBehavior>
на вашем сервере - не раздел поведения конечной точки. В конце концов, это поведение службы (оно влияет на весь сервис), а не поведение конечной точки (которое влияет только на одну конечную точку, но не на другие).
Итак, вы должны иметь:
<serviceBehaviors>
<behavior name="debug">
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
в конфигурации на стороне сервера (web.config или app.config), а затем примените это поведение службы к тегу службы:
<services>
<service name="...."
behaviorConfiguration="debug">
....
Во-вторых: ошибка 500 является внутренней ошибкой сервера, поэтому сервер не может интерпретировать и обрабатывать ваш ввод. Лучше всего сделать некоторую проверку на стороне клиента перед фактической отправкой этого ввода в службу, чтобы избежать ошибок такого рода.
Если вы не можете сделать это, то, возможно, вам нужно добавить еще немного логики в ваш сервис, чтобы вы могли фиксировать и выяснять ошибки такого рода, прежде чем они взорвут код вашего сервиса.
И в-третьих, окончательное решение: вы могли бы написать инспектор параметров на стороне клиента, чтобы перехватывать эти неправильные параметры еще до их отправки на сервер и реагировать соответствующим образом. WCF очень расширяемый таким образом. См. MSDN Как проверять или изменять параметры или в этом блоге , если вам интересно узнать больше об инспекторах параметров.