Я создал прокси-класс библиотеки в Service Solution, ссылающийся также на сборку контракта, и скопировал библиотеки (Contract, Proxy) в другую папку решения. Затем сослались на библиотеки Proxy, Contract и System.ServiceModel в другой библиотеке классов, где мне нужно использовать один содержащийся метод, а также добавить App.Config внутри библиотеки.
Сервис размещается в приложении Windows Forms. Клиент - это библиотека классов, вызываемая из приложения форм Windows. Я не создал App.Config внутри проекта форм Windows. Фактически проект Windows Form загружает элемент управления в библиотеку, а элемент управления загружает библиотеку, где мне нужно использовать метод обслуживания. Поэтому я подумал, что должен ссылаться только на (Контракт и прокси) в последней сборке, так как я не буду использовать его где-либо еще.
Но я продолжаю получать эту ошибку:
Не удалось найти конечную точку по умолчанию
элемент, который ссылается на контракт
«Sign.Contracts.ISignDocument» в
Конфигурация клиента ServiceModel
раздел. Это может быть потому, что нет
файл конфигурации был найден для вашего
приложение, или потому что нет конечной точки
элемент, соответствующий этому контракту, может
быть найденным в клиентском элементе.
App.Config в libray, вызывающий прокси:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<services>
<client>
<endpoint
address="http://localhost:8731/SignHere"
binding="basicHttpBinding"
contract="Sign.Contracts.ISignDocument" />
</client>
</services>
</system.serviceModel>
</configuration>
App.Config в службе Хост:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<services>
<service name="Sign.Service.SignDocumentService">
<endpoint
address="http://localhost:8731/SignHere"
binding="basicHttpBinding"
contract="Sign.Contracts.ISignDocument" />
</service>
</services>
</system.serviceModel>
</configuration>
Класс прокси:
namespace Sign.Proxies
{
public class Proxy : ClientBase<ISignDocument>, ISignDocument
{
public string SignDocument(string document)
{
return Channel.SignDocument(document);
}
}
}
Класс договора:
namespace Sign.Contracts
{
[ServiceContract]
public interface ISignDocument
{
[OperationContract]
string SignDocument(string document);
}
}
Есть идеи?