Любые идеи, как это исправить?
UserService.UserServiceClient userServiceClient = new UserServiceClient();
userServiceClient.GetUsersCompleted += new EventHandler<GetUsersCompletedEventArgs>(userServiceClient_GetUsersCompleted);
userServiceClient.GetUsersAsync(searchString);
.
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_UserService"
maxBufferSize="2147483647"
maxReceivedMessageSize="2147483647">
<security mode="None" />
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://localhost:52185/UserService.svc"
binding="basicHttpBinding"
bindingConfiguration="BasicHttpBinding_UserService"
contract="UserService.UserService"
name="BasicHttpBinding_UserService" />
</client>
<behaviors>
<serviceBehaviors>
<behavior name="Shell.Silverlight.Web.Service3Behavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
<services>
<service behaviorConfiguration="Shell.Silverlight.Web.Service3Behavior"
name="Shell.Silverlight.Web.Service3">
<endpoint address=""
binding="basicHttpBinding"
contract="Shell.Silverlight.Web.Service3" />
<endpoint address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange" />
</service>
</services>
</system.serviceModel>
Не удалось найти элемент конечной точки по умолчанию, который ссылается на контракт UserService.UserService в разделе конфигурации клиента ServiceModel. Это может быть связано с тем, что для вашего приложения не найден файл конфигурации или потому, что в клиентском элементе не может быть найден элемент конечной точки, соответствующий этому контракту.
Решено!
Я не упоминал, что это приложение Silverlight. У меня была ссылка на wcf в DLL, у которой был собственный файл "ServiceReferences.ClientConfig". Я переместил содержимое DLL ServiceReferences.ClientConfig в основной проект silverlight, и это сработало.
Ответы:
У меня была такая же проблема. Мое приложение также было приложением Silverlight, и служба вызывалась из библиотеки классов с пользовательским элементом управления UserControl, который использовался в ней.
Решение простое. Скопируйте определения конечных точек из файла конфигурации (например, ServiceReferences.ClientConfig) библиотеки классов в файл конфигурации приложения Silverlight. Я знаю, что вы ожидаете, что это сработает и без этого, но, видимо, у кого-то в Редмонде в тот день был отпуск.
источник
web.config
?Вы также можете установить эти значения программно в библиотеке классов, это позволит избежать ненужного перемещения файлов конфигурации по библиотеке. Пример кода для простого BasciHttpBinding -
источник
На всякий случай, если кто-то столкнется с той же проблемой при использовании WPF (а не WCF или Silverlight):
У меня была эта ошибка при подключении к веб-службе. Когда мой код находился в «основном» решении для приложения WPF, никаких проблем, он работал отлично. Но когда я переместил код на более разумное решение на уровне DAL, возникло исключение.
Как было сказано в этой ветке "Sprite", вам нужно вручную скопировать тег.
Для приложений WPF это означает копирование тега из app.config в моем решении DAL в app.config в основном решении WPF Application.
источник
Я столкнулся с той же проблемой, по какой-то причине Visual Studio не обновила веб-конфигурацию, когда я впервые добавил службу. Я обнаружил, что обновление Service Reference также устранило эту проблему.
Шаги:
источник
Измените web.config службы WCF на "endpoint address =" "binding =" basicHttpBinding "..." (ранее binding = "wsHttpBinding") После сборки приложения в конфигурации "ServiceReferences.ClientConfig" "" "> имеет значение . Тогда все будет нормально работать.
источник
Переименуйте output.config, созданный svcutil.exe, в app.config. у меня это сработало.
источник
У вас есть интерфейс, который реализует ваш класс "UserService".
Конечные точки должны указывать интерфейс для атрибута контракта:
источник
Не уверен, что это проблема. Конечная точка и привязка имеют одинаковое имя
источник
Не уверен, действительно ли это проблема, но я вижу, что у вас такое же имя для конфигурации привязки ().
Обычно я пытаюсь называть свои конечные точки чем-то вроде «UserServiceBasicHttp» или чем-то подобным («Binding» здесь действительно нечего делать), и я пытаюсь вызвать свои конфигурации привязки с помощью «.... Configuration», например «UserServiceDefaultBinding», чтобы избежать возможных конфликтов имен.
Марк
источник
Пришлось добавить службу в вызывающий файл App.config, чтобы он работал. Убедитесь, что вы это все-таки. Похоже, это сработало для меня.
источник
Эта проблема возникает, когда вы используете свою службу через другое приложение. Если у приложения есть файл конфигурации, просто добавьте информацию о конфигурации вашей службы в этот файл. В моей ситуации не было никакого файла конфигурации, поэтому я использую этот метод, и он работал нормально. Просто сохраните URL-адрес в приложении, прочтите его и с помощью метода BasicHttpBinding () отправьте его в служебное приложение в качестве параметра. Это простая демонстрация того, как я это сделал. Это:
источник
Для тех, кто работает со службами AX 2012 AIF и пытается вызвать там проект C # или VB внутри AX (x ++) и страдает от таких ошибок, как «не удалось найти конечную точку по умолчанию» ... или «контракт не найден» ... вернуться в проект Visual Studio (c #) и добавьте эти строки перед определением клиента службы, затем разверните проект и перезапустите клиент AX и повторите попытку: Обратите внимание, что пример предназначен для адаптера NetTcp , вы можете легко использовать любой другой адаптер вместо этого в соответствии с вашими потребностями .
источник
В случае, если вы используете приложение WPF с использованием инфраструктуры PRISM, тогда конфигурация должна существовать в вашем стартовом проекте (то есть в проекте, где находится ваш загрузчик).
Короче просто удалите его из библиотеки классов и поместите в стартовый проект.
источник