В моем случае проблема оказалась в несоответствии настроек безопасности на клиенте и сервере. Я использовал пользовательскую привязку, как это:
<customBinding>
<binding name="AuthorisedBinaryHttpsBinding" receiveTimeout="00:03:00" sendTimeout="00:03:00">
<!-- this next element caused the problem: -->
<security authenticationMode="UserNameOverTransport">
</security>
<binaryMessageEncoding>
<readerQuotas maxDepth="100" maxStringContentLength="1000000"
maxArrayLength="655360000" />
</binaryMessageEncoding>
<httpsTransport />
</binding>
</customBinding>
Когда я удалил элемент безопасности, который я выделил выше, проблема с сообщением «Невозможно автоматически отладить» исчезла.
Для решения проблемы я сначала включил трассировка WCF . Это показало мне, что WCF выбрасывал MessageSecurityException :
Не удалось найти процессор безопасности
заголовок безопасности в сообщении. это
может быть потому, что сообщение является
необеспеченная ошибка или потому, что есть
несоответствие между
общающиеся стороны. Это может
происходят, если служба настроена для
безопасность и клиент не использует
безопасность.
Это указывало на то, что я посмотрел настройки Binding на стороне клиента. Оказалось, что я не добавил требуемый элемент безопасности в свою пользовательскую привязку. Поскольку я делал это с помощью кода, мне нужно было следующее (обратите внимание на 3-ю строку):
var binding = new CustomBinding(
binaryEncoding,
SecurityBindingElement.CreateUserNameOverTransportBindingElement(),
new HttpsTransportBindingElement { MaxReceivedMessageSize = MaxMessageSize, });
Относительно того, почему Visual Studio показывала эту ошибку, я понятия не имею - мне кажется, что это ошибка.