Pergunta

Eu criei um serviço ODATA/WCF usando o Visual Studio 2010 no Windows XP SP3 com todos os patches atuais instalados.

Quando clico em "View in Browser", o serviço é aberto e vejo as 3 tabelas do meu modelo EF. No entanto, quando adiciono um nome de tabela ("comandos" neste caso) ao final da sequência de consulta, em vez de ver os dados da tabela, recebo um erro HTTP 500.(Este erro (erro interno do servidor interno HTTP 500) significa que o site que você está visitando teve um problema de servidor que impedia a exibição da página da Web.).

Não apenas segui os exemplos de 2 sites, mas também tentei executar o aplicativo de amostra que o pôster do blog me enviou (que funciona em sua máquina) e ainda não estou tendo sorte.

A postagem do blog está em Expondo ODATA de um modelo de estrutura de entidade

Alguém tem uma ideia por que isso está ocorrendo e como resolvê -lo?

Aqui está a saída da "visão no navegador":

<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 
- <service xml:base="http://localhost:1883/VistaDBCommandService.svc/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:app="http://www.w3.org/2007/app" xmlns="http://www.w3.org/2007/app">
- <workspace>
  <atom:title>Default</atom:title> 
- <collection href="Commands">
  <atom:title>Commands</atom:title> 
  </collection>
- <collection href="Databases">
  <atom:title>Databases</atom:title> 
  </collection>
- <collection href="Statuses">
  <atom:title>Statuses</atom:title> 
  </collection>
  </workspace>
  </service>

Atualizar:

Em um esforço para fazer isso funcionando, eu tenho:

  1. Removido e reinstalado IIS
  2. Ran o %windir % microsoft.net framework v4.0.30319 aspnet_regiis –i –enable Command
  3. Run o %Windir % Microsoft.net Framework v4.0.30319 servicemodelreg.exe -r.
  4. Criou uma nova solução e seguiu as instruções com muito cuidado para garantir que eu não estrague nada.

Depois de tudo isso, ainda estou recebendo o mesmo erro HTTP 500, sem entradas de qualquer tipo no visualizador de eventos.

Alguma outra idéia?

Foi útil?

Solução

Eu descobri que meu problema era um problema na abertura do banco de dados. A maneira como descobri que foi adicionar o seguinte ao arquivo serviceName.svc.cs no método InitializeSevice:

config.UseVerboseErrors=true;

Obrigado a todos que tentaram ajudar.

Eric

Outras dicas

config.UseVerboseErrors=true; me ajudou a descobrir o problema. O problema era que eu estava usando a autenticação do Windows para conexão com o banco de dados. Depois de mudar para a autenticação do SQL Server, tudo funcionou bem.

Por favor, tente estas dicas de depuração para ver o erro real que aconteceu:http://blogs.msdn.com/b/phaniraj/archive/2008/06/18/debugging--net-data-services.aspx

500 Sempre significa que houve uma exceção não tratada no serviço. Vá procurar no log do evento do Windows para ver qual foi esse erro.

Recebeu saída semelhante com o VS2013:

HTTP 500 Internal Server Error screenshot

Resolvido atualizando a estrutura da entidade.

Ver resposta https://stackoverflow.com/a/21028123/2116188.

Você também pode ativar o rastreamento de solicitação com falha para o seu aplicativo da web no IIS

Em seguida, você receberá a execução de rastreamento de detestação em arquivos XML do IIS quando ocorre um erro de 500

Há um bom artigo aqui explicando como configurar o rastreamento da solicitação falhada no IIS:

Usando o rastreamento de solicitação com falha para rastrear regras de reescrita

HTH CÉDRIC

Se você estiver usando o arquivo de dados compacto do SQL Server (como o Northwind.sdf), precisará dar permissão de arquivo de gravação ao grupo IUSRS.

Ex: Se você está usando o Northwind.sdf no DataDirectory, ou seja, seu Escreva permissões para o grupo _USRS do console do IIS ou do Windows Explorer.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top