Alguma ideia de como consertar isso?
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>
Não foi possível encontrar o elemento de terminal padrão que faz referência ao contrato 'UserService.UserService' na seção de configuração do cliente ServiceModel. Isso pode ser porque nenhum arquivo de configuração foi localizado para seu aplicativo ou porque nenhum elemento de terminal correspondente a este contrato foi encontrado no elemento cliente.
Resolvido!
Não mencionei que se tratava de um aplicativo Silverlight. Eu tinha a referência wcf em uma DLL que tinha seu próprio arquivo "ServiceReferences.ClientConfig". Mudei o conteúdo de ServiceReferences.ClientConfig da DLL para o projeto silverlight principal e funcionou.
Respostas:
Eu tive um problema com o mesmo. Meu aplicativo também era um aplicativo Silverlight e o serviço estava sendo chamado de uma biblioteca de classes com um UserControl personalizado que estava sendo usado nele.
A solução é simples. Copie as definições do terminal do arquivo de configuração (por exemplo, ServiceReferences.ClientConfig) da biblioteca de classes para o arquivo de configuração do aplicativo silverlight. Eu sei que você esperaria que funcionasse sem ter que fazer isso, mas aparentemente alguém em Redmond tirou férias naquele dia.
fonte
web.config
?Você também pode definir esses valores programaticamente na biblioteca de classes, o que evitará o movimento desnecessário dos arquivos de configuração pela biblioteca. O código de exemplo para BasciHttpBinding simples é -
fonte
Apenas no caso de alguém ter o mesmo problema ao usar WPF (em vez de WCF ou Silverlight):
Tive esse erro, ao conectar a um Web Service. Quando meu código estava na solução de aplicativo WPF "principal", sem problemas, funcionou perfeitamente. Mas quando eu movia o código para a solução de camada DAL mais sensata, isso geraria a exceção.
Como foi afirmado por "Sprite" neste tópico, você precisa copiar a tag manualmente.
Para aplicativos WPF, isso significa copiar a tag do app.config em minha solução DAL para app.config na solução de aplicativo WPF principal.
fonte
Encontrei o mesmo problema, por algum motivo, o Visual Studio não atualizou a configuração da web quando adicionei o serviço pela primeira vez. Descobri que atualizar a Referência de serviço também corrigiu esse problema.
Passos:
fonte
Altere o web.config do serviço WCF como "endpoint address =" "binding =" basicHttpBinding "..." (anteriormente binding = "wsHttpBinding") Depois de construir o aplicativo, na configuração "ServiceReferences.ClientConfig" ""> tem o valor . Então vai funcionar bem.
fonte
Renomeie o output.config produzido por svcutil.exe para app.config. funcionou para mim.
fonte
Você tem uma interface que implementa sua classe "UserService"?
Seus endpoints devem especificar uma interface para o atributo de contrato:
fonte
Não tenho certeza se isso é um problema. Endpoint e binding têm o mesmo nome
fonte
Não tenho certeza se é realmente um problema, mas vejo que você tem o mesmo nome para sua configuração de vinculação ().
Normalmente tento chamar meus pontos de extremidade de algo como "UserServiceBasicHttp" ou algo semelhante (o "Binding" realmente não tem nada a ver aqui) e tento chamar minhas configurações de ligação de algo como ".... Configuration", por exemplo "UserServiceDefaultBinding", para evitar qualquer conflito de nomes em potencial.
Marc
fonte
Tive que adicionar o serviço no arquivo App.config de chamada para que ele funcionasse. Certifique-se de que você, mas depois de tudo. Isso pareceu funcionar para mim.
fonte
Esse problema ocorre quando você usa o serviço por meio de outro aplicativo. Se o aplicativo tiver um arquivo de configuração, basta adicionar as informações de configuração do serviço a esse arquivo. Na minha situação não havia nenhum arquivo de configuração, então eu uso essa técnica e funcionou bem. Basta armazenar o endereço url no aplicativo, lê-lo e, usando o método BasicHttpBinding (), enviá-lo para o aplicativo de serviço como parâmetro. Esta é uma demonstração simples de como fiz isto:
fonte
Para aqueles que trabalham com serviços AIF AX 2012 e tentam chamar o projeto C # ou VB dentro do AX (x ++) e sofrem com os erros de "não foi possível encontrar o endpoint padrão" ... ou "nenhum contrato encontrado" ... voltar ao seu projeto do Visual Studio (c #) e adicione essas linhas antes de definir seu cliente de serviço, em seguida, implante o projeto e reinicie o cliente AX e tente novamente: Observe, o exemplo é para o adaptador NetTcp , você pode facilmente usar qualquer outro adaptador de acordo com sua necessidade .
fonte
No caso, se você estiver usando o aplicativo WPF usando a estrutura PRISM, a configuração deve existir em seu projeto de inicialização (ou seja, no projeto onde reside seu bootstrapper).
Resumindo, basta removê-lo da biblioteca de classes e colocá-lo em um projeto inicial.
fonte