Solucionar problemas de referências do WCF (Windows Communication Foundation) ou WCF Data Services no Visual Studio
Aplica-se a: Visual Studio
Este artigo lista soluções para problemas comuns que podem ocorrer quando você está trabalhando com referências ao Windows Communication Foundation (WCF) ou ao WCF Data Services no Visual Studio.
Se você quiser atualizar ou remover uma referência de serviço, consulte Adicionar, atualizar ou remover uma referência de serviço de dados WCF.
Erro quando nenhum endereço de serviço é disponibilizado
Ao selecionar o botão Ir sem endereço, você poderá ver uma mensagem de erro que diz "Digite o endereço de um serviço". Para resolver esse problema, identifique o endereço do serviço e insira-o.
- Se for um serviço em sua solução, use o botão Descobrir para encontrá-lo e selecioná-lo e, em seguida, tente o botão Ir novamente.
- Se for um serviço hospedado em algum lugar na Internet, adicione-o seguindo as instruções Adicionar uma referência de serviço WCF.
Erro ao retornar dados de um serviço
Ao retornar um DataSet
ou DataTable
de um serviço, é possível obter uma exceção "A cota de tamanho máximo para mensagens de entrada foi excedida". Por padrão, a propriedade MaxReceivedMessageSize
para algumas associações é definida como um valor relativamente pequeno para limitar a exposição a ataques de negação de serviço. Você pode aumentar esse valor para evitar a exceção. Para obter mais informações, consulte MaxReceivedMessageSize.
Para corrigir esse erro:
- No Gerenciador de Soluções, clique duas vezes no arquivo app.config para abri-lo.
- Localize a propriedade
MaxReceivedMessageSize
e altere-a para um valor maior.
Não consigo encontrar um serviço na minha solução
Quando você seleciona o botão Descobrir na caixa de diálogo Adicionar Referências de Serviço , um ou mais projetos da Biblioteca de Serviços WCF na solução não aparecem na lista de serviços. Esse problema pode ocorrer se uma Biblioteca de Serviços tiver sido adicionada à solução, mas ainda não tiver sido compilada.
Para corrigir esse erro:
- Em Gerenciador de Soluções, clique com o botão direito do mouse no projeto Biblioteca de Serviços do WCF.
- Selecione Compilar.
Erro ao acessar um serviço em uma área de trabalho remota
Quando um usuário acessa um serviço WCF hospedado na Web por meio de uma conexão de área de trabalho remota e o usuário não tem permissões administrativas, a autenticação NTLM é usada. Se o usuário não tiver permissões administrativas, ele poderá receber a seguinte mensagem de erro: "A solicitação HTTP não é autorizada com o esquema de autenticação do cliente 'Anônimo'. O cabeçalho de autenticação recebido do servidor era 'NTLM'."
Para corrigir esse erro:
- No projeto do site, abra as páginas Propriedades.
- Na guia Opções de Inicialização, desmarque a caixa de seleção Autenticação NTLM.
Observação
Você deve desativar a autenticação NTLM somente para sites que contêm exclusivamente serviços WCF. A segurança dos serviços WCF é gerenciada pela configuração no arquivo web.config. Dessa forma, a autenticação NTLM se torna desnecessária.
Nível de acesso para a configuração de classes geradas não tem efeito
A definição da opção Nível de acesso para classes geradas na caixa de diálogo Configurar Referências de Serviço como Interno ou Amigo nem sempre pode funcionar. Embora a opção pareça estar definida na caixa de diálogo, as classes de suporte resultantes são geradas com um nível de acesso de Public
. Essa é uma limitação conhecida de determinados tipos, como aqueles serializados usando o XmlSerializer.
Erro ao depurar o código do serviço
Ao intervir no código de um serviço WCF do código do cliente, você pode receber um erro relacionado a símbolos ausentes. Isso pode ocorrer quando um serviço que fazia parte da sua solução foi movido ou removido da solução.
Quando você adiciona pela primeira vez uma referência a um serviço WCF que faz parte da solução atual, uma dependência de build explícita é adicionada entre o projeto de serviço e o projeto do cliente de serviço. Isso garante que o cliente sempre acesse binários de serviço atualizados, o que é importante principalmente para cenários de depuração, como a depuração do código do cliente para o código de serviço.
Se o projeto de serviço for removido da solução, essa dependência de build explícita se torna inválida. O Visual Studio não pode mais garantir que o projeto de serviço seja recriado conforme necessário.
Para corrigir esse erro, recompile manualmente o projeto de serviço:
- No menu Ferramentas, selecione Opções.
- Na caixa de diálogo Opções, expanda Projetos e Soluções e selecione Geral.
- Verifique se a caixa de seleção Mostrar configurações avançadas de build está marcada e selecione OK.
- Carregue o projeto de serviço WCF.
- Na caixa de diálogo Gerenciador de Configurações, defina a Configuração de solução ativa para Depurar. Para obter mais informações, consulte Como criar e editar configurações.
- No Gerenciador de Soluções, selecione o projeto de serviço WCF.
- No menu Compilar , selecione Recompilar para recompilar o projeto de serviço WCF.
O WCF Data Services não é exibido no navegador
Quando tenta exibir uma representação XML de dados em um Serviço de Dados do WCF, o Internet Explorer pode interpretar mal os dados como um feed RSS. Verifique se a opção para exibir feeds RSS está desabilitada.
Para corrigir esse erro, desabilite feeds RSS:
- No Internet Explorer, no menu Ferramentas , selecione Opções da Internet.
- Na guia Conteúdo , na seção Feeds , selecione Configurações.
- Na caixa de diálogo Configurações de feed, desmarque a caixa de seleção Ativar exibição de leitura de feed e selecione OK.
- Selecione OK para fechar a caixa de diálogo Opções da Internet.