Я использую Silverlight 3 Prism (CAB) с WCF
Когда я вызываю службу WCF в модуле Prism, я получаю ту же ошибку:
"Не удалось найти элемент конечной точки по умолчанию, который ссылается на контракт 'IMyService' в разделе конфигурации клиента модели сервиса. Это может быть связано с тем, что для вашего приложения не найден файл конфигурации, или из-за того, что элемент конечной точки, соответствующий этому контракту, не найден в клиентский элемент "
Оказывается, что он ищет в файле .xap оболочки файл ServiceReferences.ClientConfig, а не в файле ServiceReferences.ClientConfig модуля. Я добавил свою конечную точку и привязку к существующему файлу ServiceReferences.ClientConfig в моем приложении Silverlight Shell (оно вызывает собственные службы WCF).
Затем мне пришлось пересобрать приложение Shell, чтобы сгенерировать новый файл .xap для папки ClientBin моего веб-проекта.
Далее я перешел на настройку сервиса в коде:
// create the binding elements
BinaryMessageEncodingBindingElement binaryMessageEncoding = new BinaryMessageEncodingBindingElement();
HttpTransportBindingElement httpTransport = new HttpTransportBindingElement()
{ MaxBufferSize = int.MaxValue, MaxReceivedMessageSize = int.MaxValue};
HttpsTransportBindingElement httpsTransport = new HttpsTransportBindingElement()
{ MaxBufferSize = int.MaxValue, MaxReceivedMessageSize = int.MaxValue };
// add the binding elements into a Custom Binding
CustomBinding customBinding;
if (Application.Current.Host.Source.Scheme.Equals("https", StringComparison.InvariantCultureIgnoreCase))
{
customBinding = new CustomBinding(binaryMessageEncoding, httpsTransport);
}
else
{
customBinding = new CustomBinding(binaryMessageEncoding, httpTransport);
}
// create the Endpoint URL
EndpointAddress endpointAddress = new EndpointAddress(
"http://localhost/Test/TestModule/Test.TestModule.WCF/TestModuleService.svc");
// create an interface for the WCF service
var service = new TestModuleServiceClient(customBinding, endpointAddress);