У меня есть библиотека классов, которая должна создать соединение с существующим сервером именованных каналов. Я получаю ошибку:
Не удалось найти элемент конечной точки с именем «internal» и контрактом «SelectedStudentReference.ISelectedStudent» в разделе конфигурации клиента ServiceModel. Это может быть связано с тем, что для вашего приложения не найден файл конфигурации, или из-за того, что в клиентском элементе не найден элемент конечной точки, соответствующий этому имени.
Вот XML-файл из dll.config:
<system.serviceModel>
<bindings>
<netNamedPipeBinding>
<binding name="internal" closeTimeout="00:01:00" openTimeout="00:01:00"
receiveTimeout="00:10:00" sendTimeout="00:01:00" transactionFlow="false"
transferMode="Buffered" transactionProtocol="OleTransactions"
hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="524288"
maxBufferSize="65536" maxConnections="10" maxReceivedMessageSize="65536">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="Transport">
<transport protectionLevel="EncryptAndSign" />
</security>
</binding>
</netNamedPipeBinding>
</bindings>
<client>
<endpoint address="net.pipe://localhost/SelectedStudent" binding="netNamedPipeBinding"
bindingConfiguration="internal" contract="SelectedStudentReference.ISelectedStudent"
name="internal">
<identity>
<userPrincipalName value="name@company.org" />
</identity>
</endpoint>
</client>
</system.serviceModel>
Вот код, который я использую для создания экземпляра клиента, а также где он выдает ошибку:
using AwardManager.SelectedStudentReference;
if (_client == null) _client = new SelectedStudentClient("internal");
Я знаю, что сервер работает, и в сообщении об ошибке упоминается только ошибка клиента. Есть ли проблемы с этим из библиотеки классов? Программа установки не скопировала .config с помощью dll, я сделал это вручную, поэтому я не уверен, что .dll обращает внимание на .config.
Это зарегистрированная COM-видимая dll, которая создается и вызывается другим процессом. Я не могу добавить этот system.serviceModel в .config для этого другого процесса.
Я мог бы построить клиент в коде, если бы это работало, и у меня было несколько примеров того, как это сделать.
Я также мог бы использовать некоторую помощь с userPrincipleName. Неправильно использовать мои учетные данные. Разве это не должно указывать учетные данные пользователя или некоторые общие учетные данные? Нужно ли его включать в конфигурацию клиента?
Спасибо