2011-11-10 15 views
7

Tengo algunos servicios WCF que se ejecutan de manera excelente localmente; el cliente puede consumirlos y el servidor está poniendo datos en el DB como se esperaba. El problema es que cuando implemento estos en una máquina de etapas, todo lo que puedo ver son errores HTTP 500.Depuración de HTTP 500 (error interno del servidor) en WCF Service/Staging

¿Cómo empiezo a depurar el problema?

Dado que solo está en etapas y no en mi máquina de desarrollo local, supongo que es un problema de configuración de IIS en alguna parte.

Cuando utilizo Fiddler para ver qué se envía y cuál es la respuesta, puedo ver (como se esperaba) datos de solicitud correctos, y solo 500 como respuesta, sin más detalles.

Soy bastante verde para WCF e IIS, por lo que es probablemente algo obvio; Utilicé aspnet_iisreg, implementé mi archivo .svc y todos los archivos DLL/archivos compilados desde bin; tal vez me perdí algo.

Miré en los registros de IIS, pero son bastante escasos; no hay información de error allí, tampoco (¿o quizás estoy buscando en el lugar equivocado?)

(Más importante que resolver el problema específico es averiguar cómo ver los detalles suficientes sobre los errores para poder resolver los problemas yo mismo).

Editar: Por supuesto, revisé primero los registros de eventos y, sorprendentemente, no encontré ninguna mención de las excepciones. Así que supongo que el servicio es al menos invocado, y que algo está fallando en el medio.

Respuesta

1

Resulta que el servidor devolvió un 500 debido a un enorme conjunto de datos devuelto; WCF pone algunas limitaciones en el tamaño de los datos (y cadenas) que puede devolver, para evitar ataques de DOS. Resolví el problema aumentando los límites y disminuyendo el tamaño de los datos devueltos (cuando corresponda).

6

El primer lugar para buscar errores es el registro de eventos en el servidor. Debe haber información básica sobre por qué no se procesó la solicitud. Si está relacionado con WCF, puede activar WCF tracing y comprobar si hay más detalles en los registros generados.

+1

¡Estaba muy sorprendido de encontrar que el registro de eventos no tenía nada! No se menciona ninguna excepción de .NET. – ashes999

0

'Http 500 Internal Server Error' puede ocurrir si la contraseña de su cuenta de servicio ha caducado. Asegúrese de no tener ningún problema con la cuenta de servicio que ejecuta el grupo de aplicaciones en IIS.

1

Añadir:

<httpErrors errorMode="Detailed"/> 

En Web.config en:

<system.webServer> 

y ver lo que está sucediendo en más detalles.

Cuestiones relacionadas