Служба WCF возвращает ошибку 500 по запросу js - PullRequest
2 голосов
/ 10 июня 2010

У меня есть служба wcf, которая случайно начинает отказывать при запросе автоматически сгенерированного javascript, который поддерживает wcf при создании.Но мне не повезло отследить, почему js-компонент является частью набора функций wcf. Так что я не знаю, как он может внезапно начать отказывать и не работать, пока IIS не будет переработан.

Журнал http даетя:

2010-06-10 09:11:49 W3SVC2095255988 myip GET /path/myservice.svc/js _=1276161113900 80 - ip browser 500 0 0

Так что это ошибка 500, и это единственное, что я могу понять.Журнал событий не содержит информации.

Запросы к /path/myservice.svc работают просто отлично.После перезапуска IIS он снова работает, и через несколько дней он начинает отказывать, пока я не перезапущу IIS.

     <service
        name="path.myservice"
        behaviorConfiguration="b">
        <endpoint
           address=""
           behaviorConfiguration="eb"
           binding="webHttpBinding"
           contract="path.Imyservice" />
     </service>
     ...
     <endpointBehaviors>
        <behavior name="eb">
           <enableWebScript />
        </behavior>
     </endpointBehaviors>
     <serviceBehaviors>
        <behavior name="b">
           <dataContractSerializer maxItemsInObjectGraph="2147483647" />
           <serviceMetadata httpGetEnabled="true" />
           <serviceDebug includeExceptionDetailInFaults="true" />
        </behavior>
     </serviceBehaviors>

Я также не вижу никаких проблем в настройках web.config.

Любые подсказкикак я могу отследить, в чем проблема?

Редактировать:

Просто, чтобы прояснить - это генерирование JavaScript, которое терпит неудачу, мой код никогда не вызывается,Звонки на сервис работает просто отлично.

Ответы [ 2 ]

2 голосов
/ 10 июня 2010

Я бы порекомендовал вам включить трассировку в вашем сервисе и просмотреть сгенерированные журналы с помощью Service Trace Viewer Tool .Отслеживайте только ошибки, чтобы ваши журналы были маленькими.

2 голосов
/ 10 июня 2010

Кажется, ваша служба WCF создает исключение. Вы можете перехватить это необработанное исключение в методе Application_Error в Global.asax, а затем записать его в файл журнала.

protected void Application_Error(object sender, EventArgs e)
{
    Exception ex = Server.GetLastError().GetBaseException();
    //TODO: write to log
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...