Ошибка WCF - не удалось найти элемент конечной точки по умолчанию, который ссылается на контракт 'UserService.UserService' - PullRequest
96 голосов
/ 31 марта 2009

Есть идеи как это исправить?

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, и он заработал.

Ответы [ 13 ]

0 голосов
/ 26 октября 2015

Нужно было добавить службу в вызывающий файл App.config, чтобы она работала. Убедитесь, что вы, но это в конце концов. Казалось, это работает для меня.

0 голосов
/ 12 мая 2015

Эта проблема возникает, когда вы используете свой сервис через другое приложение. Если в приложении есть файл конфигурации, просто добавьте информацию о конфигурации вашего сервиса в этот файл. В моей ситуации не было никакого файла конфигурации, поэтому я использую эту технику, и она работала нормально. Просто сохраните URL-адрес в приложении, прочитайте его и с помощью метода BasicHttpBinding () отправьте его в приложение-службу в качестве параметра. Это простая демонстрация того, как я это сделал это:

Configuration config = new Configuration(dataRowSet[0]["ServiceUrl"].ToString());

var remoteAddress = new System.ServiceModel.EndpointAddress(config.Url);


SimpleService.PayPointSoapClient client = 
    new SimpleService.PayPointSoapClient(new System.ServiceModel.BasicHttpBinding(), 
    remoteAddress);
SimpleService.AccountcredResponse response = client.AccountCred(request);
0 голосов
/ 30 августа 2012

В случае, если вы используете приложение WPF, использующее инфраструктуру PRISM, конфигурация должна существовать в вашем начальном проекте (то есть в проекте, где находится ваш загрузчик).

Короче, просто удалите его из библиотеки классов и поместите в стартовый проект.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...