#wcf #windows-phone-7
#wcf #windows-phone-7
Вопрос:
я написал простое приложение wp7. он использует службу wcf и файлы для хранения данных, предоставленных пользователем. я мог бы успешно запустить приложение без ошибок, но я получаю ошибку во время выполнения: «Раздел конфигурации конечной точки для контракта ‘ServiceReference1.Не удалось найти IService1’, поскольку было найдено более одной конфигурации конечной точки для этого контракта. пожалуйста, укажите раздел предпочтительной конфигурации конечной точки по имени » acf содержит следующий набор конфигураций конечной точки
<services>
<service name="WcfDataWallet.Service1">
<endpoint address="" binding="basicHttpBinding" bindingConfiguration="NewBinding0"
contract="WcfDataWallet.IService1">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
кто-нибудь может мне помочь, пожалуйста
Ответ №1:
У меня только что была такая же проблема. Я добавил только 1 ссылку на службу в свой проект в VS 2010, однако я заметил, что в web.config были добавлены 2 конечные точки
Я только что прокомментировал вторую конечную точку, поскольку я совершенно уверен, что она мне не нужна.
Таким образом, перед
<endpoint address="http://web_services.u.aco/ServicesLocations/1_1/LocationsService.svc"
binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_ILocationsService"
contract="LocationService.ILocationsService" name="WSHttpBinding_ILocationsService" />
<endpoint address="http://web_services.u.aco/ServicesLocations/1_1/LocationsService.svc/basic"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_ILocationsService"
contract="LocationService.ILocationsService" name="BasicHttpBinding_ILocationsService" />
Изменено на:
<endpoint address="http://web_services.u.aco/ServicesLocations/1_1/LocationsService.svc"
binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_ILocationsService"
contract="LocationService.ILocationsService" name="WSHttpBinding_ILocationsService" />
<!--<endpoint address="http://web_services.u.aco/ServicesLocations/1_1/LocationsService.svc/basic"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_ILocationsService"
contract="LocationService.ILocationsService" name="BasicHttpBinding_ILocationsService" />-->
Теперь работает!
Ответ №2:
попробуйте это
MyClientProxy proxy = new MyClientProxy("endpoint name"); eg EndPointNameXXX
Где «имя конечной точки» должно указывать на одну из ваших конечных точек в файле конфигурации клиента.
<endpoint address="http://[SERVER]/Service"
binding="basicHttpBinding" bindingConfiguration="bindingConfig"
contract="IXXXX.YYYY" name="EndPointNameXXX" />