ASP.NET - Проблемы развертывания - Включение регистрации прослушивания стека / трассировки стека через Web.Config, чтобы найти причину внутренней ошибки сервера 500 - PullRequest
3 голосов
/ 07 мая 2011

Я получаю ошибку Внутреннего сервера 500 после развертывания приложения, которое скомпилировано без ошибок, на моей локальной машине. Сервер, на котором развернуто приложение, обладает огромным уровнем безопасности, поэтому мне нужно указать права на чтение и запись для каждого каталога. Это приложение использует проверку подлинности Windows и веб-сервис для заполнения раскрывающихся списков через прокси. Я думаю, что это может быть проблема с подключением к веб-службе или проблема с безопасностью чтения / записи в файлах, или проблема с аутентификацией в активном каталоге.

Я отредактировал файл web.config, чтобы он отображал дополнительную информацию о причине ошибки, используя следующий код:

<system.web>
  <customErrors mode ="Off"></customErrors>
  <compilation debug="true" strict="false" explicit="true" targetFramework="4.0" />
  <trace enabled="true" pageOutput="true" />

  <authentication mode="Windows"/>
   <authorization>
    <allow roles="alg\ADMIN_USER" />
    <deny users="*" />        
  </authorization> 

<client>
  <endpoint address="http://63.236.108.91/aCompService.svc" binding="basicHttpBinding"
    bindingConfiguration="BasicHttpBinding_IAcompService" contract="aComp_ServiceReference.IAcompService"
    name="BasicHttpBinding_IAcompService" />
</client>

Теперь я получаю следующую ошибку:

    500 - Internal server error.

    There is a problem with the resource you are looking for, and it cannot be 
    displayed. 

Я хотел бы увидеть трассировку стека с источником ошибки.

Что я должен поместить в файл web.config, чтобы он отображал полную трассировку стека?

Что необходимо изменить на веб-сайте с локального запуска на развертывание?

Обновление - парень, занимающийся развертыванием, снял некоторые ограничения по чтению / записи, и теперь я получаю

    Parser Error Message: The connection name 'ApplicationServices' was not found in 
    the applications configuration or the connection string is empty. 

Чтобы избавиться от ошибки, я удалил AspNetSqlRoleProvider, объявленный в строке 72, и до сих пор получил ошибку. Затем я удалил AspNetWindowsTokenRoleProvider и всю информацию о провайдере. и получил следующую ошибку:

    Exception message: Default Role Provider could not be found.  

Наш хостинг сделан все удаленно, но сервер может удаленно войти на локальный веб-сервер. Похоже, серверный парень не разместил файлы в нужном месте. Теперь я теперь получаю ошибку:

    There is a problem with the resource you are looking for, and it cannot 
    be displayed.

Есть идеи, как исправить эти проблемы?

Спасибо за внимание!

Ответы [ 3 ]

1 голос
/ 10 мая 2011

Возможно, использование подражания должно помочь?Я добавил следующее в web.config:

  <authentication mode="Windows"/>
  <identity impersonate="true"/>

Я добавил код WriteToEventLog, чтобы метод мог отслеживать ошибки в журнале событий.

    Catch Ex As Exception
        WriteToEventLog(Ex.Message, "GetCarriers-Method", EventLogEntryType.Error, "aComp-utility")


    Catch ex As Exception
        WriteToEventLog(ex.Message, "GetMarketingCompanies-Method", EventLogEntryType.Error, "aComp-utility")

Возможно, поможет добавление TraceListenerLog?

Ссылка MSDN для получения дополнительной информации об этом коде.Я добавил следующее в web.config:

 <configuration>
   <system.diagnostics>
     <trace autoflush="false" indentsize="4">
       <listeners>
         <add name="myListener"
           type="System.Diagnostics.EventLogTraceListener"
           initializeData="TraceListenerLog" />
       </listeners>
     </trace>
   </system.diagnostics>
 </configuration>

Должен ли я также добавить следующее по умолчанию.aspx.vb?

Overloads Public Shared Sub Main(args() As String)

' Create a trace listener for the event log.
Dim myTraceListener As New EventLogTraceListener("myEventLogSource")

' Add the event log trace listener to the collection.
Trace.Listeners.Add(myTraceListener)

' Write output to the event log.
Trace.WriteLine(myTraceListener)

End Sub 'Main
1 голос
/ 06 января 2012

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

1 голос
/ 07 мая 2011

Есть ли у вас файл web.config в другом месте иерархии папок приложения, который может перекрывать внесенные вами изменения? Я уже сталкивался с путаницей, когда разработчики копировали файл web.config на более высокий уровень, чтобы сохранить его копию при внесении изменений в тест.

Это может быть источником сильных царапин на голове.

...