When I go to that site, I get:
<ms:errorMessage>
−
<error>
<errorId>2038</errorId>
<domain>SOA</domain>
<severity>Error</severity>
<category>System</category>
<message>Missing SOA operation name header</message>
</error>
</ms:errorMessage>
So it would seem that the URL is to a web service and probably requires some kind of authentication or at least input data in the request header. The HTTP response 500, according to Wikipedia, is a generic error meaning that the server can’t specify the problem but knows there was one. Here’s the best part of that article:
Response status codes beginning with
the digit «5» indicate cases in which
the server is aware that it has
encountered an error or is otherwise
incapable of performing the request.
Except when responding to a HEAD
request, the server should include an
entity containing an explanation of
the error situation, and indicate
whether it is a temporary or permanent
condition.
All that combined, I’d have to say your issue is that your are trying to grab a file from a remote server using a method that assumes you have some directory-level access to that file, and the server is responding with «Um, what?»
If you want to get the actual XML error as though you were in Firefox, use cURL:
$ebay_url = "http://svcs.ebay.com/services/search/FindingService/v1";
$ebay_page = curl_init();
curl_setopt($ebay_page, CURLOPT_RETURNTRANSFER, true); //output to string.
curl_setopt($ebay_page, CURLOPT_URL, $ebay_url); //set the url for the request.
$ebay_response = curl_exec($ebay_page);
print_r(simplexml_load_string($ebay_response));
If you want to actually get something back more meaningful, I would look at PHP’s SoapClient methods and the actual ebay web service documentation.
- Remove From My Forums
-
Question
-
Ok I’ve been going at this a few hours now and can’t figure this out.
I’m doing a simple web request to a 3rd party API using the Windows.Web.Http.HttpClient
class.Occasionally the API will return an Error 500 (Internal Server Error), which is normal apparently. According to my API documentation:
«On an error from the service, the service will return a 500 HTTP status with XML content of the following format: «
<error> <msg>$(MESSAGE)</msg> </error>
My question is, how do I get this response message?
A simplified example of my code would be:
private async static Task<string> GetString(Uri uri) { var httpClient = new Windows.Web.Http.HttpClient(); string xml; // ... Setup httpClient, add headers etc try { xml = await httpClient.GetStringAsync(uri); } catch { // Error 500 throws an exception } return xml; }
-
Edited by
Wednesday, July 22, 2015 10:50 PM
-
Edited by
Answers
-
For anyone who might be curious, I’ve change my code to something like this and seems to work.
response = await httpClient.GetAsync(uri); if (response.IsSuccessStatusCode) { xml = await response.Content.ReadAsStringAsync(); } else { if (response.StatusCode == HttpStatusCode.InternalServerError) { // Try to read response, log error etc. var errorxml = await response.Content.ReadAsStringAsync(); ... } else { // Do something for other errors ... } } ...
Thanks everyone for the help
-
Marked as answer by
Tweekism
Wednesday, July 22, 2015 10:48 PM
-
Marked as answer by
Ok so i tried to fix it by myself now i have this warning.
Maybe for the info: Its a multisite installation with one core but different DB’s and labguages.
This is currently my code in the sitemap.xml template.
<?php namespace ProcessWire; /** * ProcessWire Template to power a sitemap.xml * * 1. Copy this file to /site/templates/sitemap-xml.php * 2. Add the new template from the admin. * Under the "URLs" section, set it to NOT use trailing slashes. * 3. Create a new page at the root level, use your sitemap-xml template * and name the page "sitemap.xml". * * Note: hidden pages (and their children) are excluded from the sitemap. * If you have hidden pages that you want to be included, you can do so * by specifying the ID or path to them in an array sent to the * renderSiteMapXML() method at the bottom of this file. For instance: * * echo renderSiteMapXML(array('/hidden/page/', '/another/hidden/page/')); * * */ function renderSitemapPage(Page $page) { return "n<url>" . "nt<loc>" . $page->httpUrl . "</loc>" . "nt<lastmod>" . date("Y-m-d", $page->modified) . "</lastmod>" . "n</url>"; } function renderSitemapChildren(Page $page) { $out = ''; $newParents = new PageArray(); $children = $page->children; foreach($children as $child) { $out .= renderSitemapPage($child); if($child->numChildren) $newParents->add($child); else $this->wire('pages')->uncache($child); } foreach($newParents as $newParent) { $out .= renderSitemapChildren($newParent); $this->wire('pages')->uncache($newParent); } return $out; } function renderSitemapXML(array $paths = array()) { $out = '<?xml version="1.0" encoding="UTF-8"?>' . "n" . '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">'; array_unshift($paths, '/'); // prepend homepage foreach($paths as $path) { $page = $this->wire('pages')->get($path); if(!$page->id) continue; $out .= renderSitemapPage($page); if($page->numChildren) $out .= renderSitemapChildren($page); } $out .= "n</urlset>"; return $out; } if ($pages->get("1042")->sitemaps != " ") { $ausgabe = renderSitemapXML(array( // $ps = $pages->get("1042")->sitemaps; // foreach ($ps as $p) { // echo "$p->path"; // } // '/hidden/page/' )); }else{ $ausgabe = renderSitemapXML(); } // echo renderSitemapXML(); // Example: echo renderSitemapXML(array('/hidden/page/')); header("Content-Type: text/xml"); echo $ausgabe;
0 Пользователей и 1 Гость просматривают эту тему.
- 13 Ответов
- 11602 Просмотров
Добрый вечер
Возникла такая проблема, при нажатии настроек в компоненте материалов и других настроек в других компонентах возникает ошибка:
500 - Обнаружена ошибка.
XML-файл не был загружен
В логе ошибок апача никакой информации
Включил полный вывод ошибок в самой Joomla и мне выдало такой списочек:
XML-файл не был загружен
Call stack
# Function Location
1 JAdministrator->dispatch() JROOTadministratorindex.php:47
2 JComponentHelper::renderComponent() JROOTadministratorincludesapplication.php:152
3 JComponentHelper::executeComponent() JROOTlibrariesjoomlaapplicationcomponenthelper.php:357
4 require_once() JROOTlibrariesjoomlaapplicationcomponenthelper.php:388
5 JController->execute() JROOTadministratorcomponentscom_configconfig.php:22
6 ConfigController->display() JROOTlibrariesjoomlaapplicationcomponentcontroller.php:754
7 ConfigViewComponent->display() JROOTadministratorcomponentscom_configcontroller.php:68
8 JError::raiseError() JROOTadministratorcomponentscom_configviewscomponentview.html.php:30
9 JError::raise() JROOTlibrariesjoomlaerrorerror.php:251
Стоит на appserv
Joomla 2.5.1
Apache/2.2.8 (Win32) PHP/5.2.6
« Последнее редактирование: 25.02.2012, 22:35:47 от dinox »
Записан
Дай каждому дню шанс стать самым прекрасным в твоей жизни!
Ждем когда microsoft.com перейдет на Joomla!
Тоже такая проблема была.
За вывод окна настроек XML из com_content отвечает, который здесь: ваш URL/administrator/components/.
Какой именно XML не подгружается, не разбирал, их там несколько. Залил папку com_content из дистрибутива Joomla по ftp
целиком, с заменой файлов. У меня проблема решилась. Настройки выводятся, сообщений об ошибке больше нет.
P.S. Незабудте перед заливкой, сделать копию папки.
« Последнее редактирование: 05.05.2012, 23:09:07 от Winter8k »
Записан
Этот файл скорее всего config.xml
Такое еще часто возникает после переноса сайта с локалки или с другого хоста. Нужно очистить кэш в админке: Сайт-Обслуживание-Очистить весь кэш
Записан
Спасибо за freeware!
Если вы готовы небезвозмездно ответить на мой вопрос, с удовольствием рассмотрю предложение.
Ищу адекватного партнёра (программиста) по разработке сайтов на Joomla. Обеспечу ненапряжный поток задач.
Такое еще часто возникает после переноса сайта с локалки или с другого хоста. Нужно очистить кэш в админке: Сайт-Обслуживание-Очистить весь кэш
Спасибо большое. Очистка Кэша помогла, Сайт переносил на другой домен.
Здравствуйте, возникла проблема описанная выше.
500 - Обнаружена ошибка.
XML-файл не был загружен
Но только когда я пытаюсь создать или отредактировать материалы или категории компонента K2
Не помогли ни очистка кеша, ни назначение прав доступа папкам tmp и logs, ни перезаливка файлов компонента по ftp
Это началось после того как пришлось перезаливать сайт из бэкапа.
Версия Joomla! 2.5.18
На хостинге spaceweb
адрес сайта http://sun8home.ru/
Спасибо! Переустановка через админку компонента К2 помогла! Вот так всегда, ответ лежит на поверхности )))
Пожалуйста
КЭШ в корне чистил. Проблема была после переноса сайта на домен когда в редактирование шаблона входил.
Проблема решена!
У меня тоже возникала ошибка по поводу «XML-файл не был загружен» когда я ввожу логин с паролем неправильно или когда захожу в Менеджер шаблонов — Выбираю свой шаблон (Сайт).
Надо всего лишь обновить Gantry Framework в Менеджере расширений. После этого все заработало!
Была така проблема при входе в рокетовский шаблон, решилось очисткой кеша старого и «нового»))
Всем привет. Сегодня была такая же проблема на Joomla 3.4.4 Stable при заходе в шаблон. Все помогло когда обновил Gantry. Всем удачи
Такое еще часто возникает после переноса сайта с локалки или с другого хоста. Нужно очистить кэш в админке: Сайт-Обслуживание-Очистить весь кэш
Доброго времени суток всем!
Очень признательна jesus за краткую полезную инструкцию, мне помогло!!
We’ve just finished migrating all of our users from a legacy AD forest with Exchange 2010 into a whole new AD forest with Exchange 2016.
During the initial deployment of Exchange 2016 a new mailbox store was created, the existing system mailboxes were migrated (mailbox move) to the new store and the default Exchange 2016 store was deleted. We think our OAB broke at this point.
The behavior we were seeing was Outlook clients perpetually saying “Updating Address Book”, slow performance in Outlook where previously there wasn’t, delayed e-mail coming into mailboxes.
If users went into “C:Users%username%AppDataLocalMicrosoftOutlookOffline Address Books” they either had nothing or a old copy from our previous Exchange 2010 deployment. If they closed Outlook, purged the contents of “Offline Address Books” they would never be re-created because the OAB would never download from Exchange.
I’m assuming you’ve got everything else configured correctly on your end at this point. Things like Internal/External URLs, SSL certificates, yadda.
First thing first was to check if the OAB was on Exchange (I’ve redacted some information with *’s):
Get-OfflineAddressBook |fl Server : GeneratingMailbox : AddressLists : {Default Global Address List} Versions : {Version4} IsDefault : True PublicFolderDatabase : PublicFolderDistributionEnabled : False GlobalWebDistributionEnabled : False WebDistributionEnabled : True ShadowMailboxDistributionEnabled : False UseE14SortOrder : False UseE14SortOrderOrdinal : False UseOrdinalSortedMultivaluedProperties : True LastTouchedTime : LastRequestedTime : LastFailedTime : LastNumberOfRecords : 2911 HttpHomeMdbLastProcessedBucket : 1000 LastGeneratingData : MailboxGuid: ee2ae703-5c35-4892-a43b-e2120618cc4a; DatabaseGuid: dcfde51e-44ff-4bb9-a44f-465998ffa3c8; Server: ******************** MaxBinaryPropertySize : 32768 MaxMultivaluedBinaryPropertySize : 65536 MaxStringPropertySize : 3400 MaxMultivaluedStringPropertySize : 65536 ConfiguredAttributes : {OfficeLocation, ANR, ProxyAddresses, ANR, PhoneticGivenName, ANR, GivenName, ANR...} DiffRetentionPeriod : 30 Schedule : {Sun.5:00 AM-Sun.5:15 AM, Mon.5:00 AM-Mon.5:15 AM, Tue.5:00 AM-Tue.5:15 AM, Wed.5:00 AM-Wed.5:15 AM...} VirtualDirectories : {} AdminDisplayName : Identity : Default Offline Address Book IsValid : True ExchangeVersion : 0.20 (15.0.0.0) Name : Default Offline Address Book DistinguishedName : CN=Default Offline Address Book,CN=Offline Address Lists,CN=Address Lists Container,CN=******,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=*****,DC=*****,DC=***** Guid : 28a57cb5-b2c8-442a-81f3-a48a05f9ab7b ObjectCategory : *********/Configuration/Schema/ms-Exch-OAB ObjectClass : {top, msExchOAB} WhenChanged : 7/20/2017 9:47:15 AM WhenCreated : 2/2/2017 10:22:06 AM WhenChangedUTC : 7/20/2017 4:47:15 PM WhenCreatedUTC : 2/2/2017 6:22:06 PM OrganizationId : Id : Default Offline Address Book OriginatingServer : **************************** ObjectState : Unchanged
The lines that mattered here to me were:
- Guid
- LastTouchedTime
As you can see this OAB has never been touched which means to me it’s never been updated or created.
Using the GUID I checked to see what IIS had to say about the OAB:
- https://mail.mydomain.com/OAB/28a57cb5-b2c8-442a-81f3-a48a05f9ab7b/oab.xml
Loading this URL prompted me for a login, good so far, entered my domain credentials and got this error:
XML Parsing Error: no root element found Location: https://************/OAB/28a57cb5-b2c8-442a-81f3-a48a05f9ab7b/OAB.xml Line Number 1, Column 1: ^
After this I manually checked each of our Exchange servers (we have 3) to see if they all gave the exact same Error 500. They did:
- https://server-01.mydomain.com/OAB/28a57cb5-b2c8-442a-81f3-a48a05f9ab7b/oab.xml
- https://server-02.mydomain.com/OAB/28a57cb5-b2c8-442a-81f3-a48a05f9ab7b/oab.xml
- https://server-03.mydomain.com/OAB/28a57cb5-b2c8-442a-81f3-a48a05f9ab7b/oab.xml
During my Googling for this I found this blog post: http://unified.swiatelski.com/2011/02/exchange-2010-cannot-download-offline.html
The permissions were incorrect on our web.config file so I tried the suggested fix in the blog post. It didn’t work.
I then went through this document: https://technet.microsoft.com/en-us/library/gg247612%28v=exchg.150%29.aspx and made all of the tweaks needed to match those recommendations. I couldn’t find a Exchange 2016 specific document but there weren’t many tweaks to be made and they all made sense to me.
This did not resolve the issue either.
Next up was a Outlook Web Services health check using this PowerShell command:
Test-OutlookWebServices -Identity ******@******* -MailboxCredential (Get-Credential) |fl Source : ******************** ServiceEndpoint : ******************** Scenario : OfflineAddressBook ScenarioDescription : Offline Address Book Result : Failure Latency : 57 Error : System.Net.WebException: The remote server returned an error: (500) Internal Server Error. at System.Net.HttpWebRequest.GetResponse() at Microsoft.Exchange.Management.SystemConfigurationTasks.ServiceValidatorBase.InternalInvoke() at Microsoft.Exchange.Management.SystemConfigurationTasks.ServiceValidatorBase.Invoke() Verbose : [2017-07-19 20:51:57Z] Offline Address Book connecting to 'https://*****************/OAB/28a57cb5-b2c8-442a-81f3-a48a05f9ab7b/oab.xml'. [2017-07-19 20:51:57Z] Test account: ****************** Password: ****** [2017-07-19 20:51:57Z] Offline Address Book request: User-Agent: *****************/Test-OutlookWebServices/*************@************** Authorization: Negotiate ******************** Host: ******************* [2017-07-19 20:51:57Z] Offline Address Book request: [2017-07-19 20:51:57Z] Offline Address Book response: request-id: 9322f001-038d-447b-9825-127d6a53e2b4 X-CasErrorCode: OrganizationMailboxNotFound Persistent-Auth: true X-FEServer: ****************** Content-Length: 0 Cache-Control: private Date: Wed, 19 Jul 2017 20:51:56 GMT Server: Microsoft-IIS/8.5 X-AspNet-Version: 4.0.30319 X-Powered-By: ASP.NET [2017-07-19 20:51:57Z] Offline Address Book response: System.Net.WebException: The remote server returned an error: (500) Internal Server Error. at System.Net.HttpWebRequest.GetResponse() at Microsoft.Exchange.Management.SystemConfigurationTasks.ServiceValidatorBase.InternalInvoke() at Microsoft.Exchange.Management.SystemConfigurationTasks.ServiceValidatorBase.Invoke() MonitoringEventId : 6004
Ok. Error 500. We know this already.
On my local system I ran this command in Command Prompt:
C:> bitsadmin /list /allusers /verbose GUID: {60706BD3-5582-47E1-9F25-B9E9FEC6E5C0} DISPLAY: 'Microsoft Outlook Offline Address Book c31853e2bbf1be4583586e98075f0831' TYPE: DOWNLOAD STATE: ERROR OWNER: *************** PRIORITY: HIGH FILES: 0 / 1 BYTES: 0 / UNKNOWN CREATION TIME: 2017-07-19 10:01:46 AM MODIFICATION TIME: 2017-07-19 11:01:48 AM COMPLETION TIME: UNKNOWN ACL FLAGS: NOTIFY INTERFACE: UNREGISTERED NOTIFICATION FLAGS: 3 RETRY DELAY: 300 NO PROGRESS TIMEOUT: 3600 ERROR COUNT: 13 PROXY USAGE: PRECONFIG PROXY LIST: NULL PROXY BYPASS LIST: NULL ERROR FILE: https://****************/OAB/28a57cb5-b2c8-442a-81f3-a48a05f9ab7b/oab.xml -> C:Users************AppDataLocalMicrosoftOutlookoab4.xml ERROR CODE: 0x801901f4 - HTTP status 500: An unexpected condition prevented the server from fulfilling the request. ERROR CONTEXT: 0x00000005 - The error occurred while the remote file was being processed. DESCRIPTION: Microsoft Outlook Offline Address Book Directory JOB FILES: 0 / UNKNOWN WORKING https://*************/OAB/28a57cb5-b2c8-442a-81f3-a48a05f9ab7b/oab.xml -> C:Users**************AppDataLocalMicrosoftOutlookoab4.xml NOTIFICATION COMMAND LINE: none owner MIC integrity level: MEDIUM owner elevated ? false Peercaching flags Enable download from peers :false Enable serving to peers :false CUSTOM HEADERS: NULL
After digging around the file system of our Exchange servers I was unable to find a folder called 28a57cb5-b2c8-442a-81f3-a48a05f9ab7b in the following locations:
- C:Program FilesMicrosoftExchange ServerV15ClientAccessOAB
- C:Program FilesMicrosoftExchange ServerV15FrontEndHttpProxyoab
This confirmed for me that the OAB wasn’t even being generated.
We then tried manually updating the OAB. The command succeeded but no OAB was generated.
Update-OfflineAddressBook -Identity "Default Offline Address Book"
We think what happened is the moving of the System Mailboxes way back at the beginning of our Exchange 2016 deployment broke the association of which system mailbox generates the OAB.
Running this command confirmed that there was no mailbox assigned to generate the OAB:
Get-Mailbox -Arbitration | where {$_.PersistedCapabilities -like “*OAB*”} | ft Name,Servername,Database
To fix the problem we did the following:
Enabled Global Distribution of the OAB (since we have 3 Exchange Servers why let one of them have all the fun?):
Set-OfflineAddressBook -Identity "Default Offline Address Book" -VirtualDirectories $null -DomainController DC01.users.int.mydom.com -Verbose Set-OfflineAddressBook -Identity "Default Offline Address Book" -GlobalWebDistributionEnabled $true -DomainController DC01.users.int.mydom.com -Verbose
Then we created a new system mailbox dedicated to the purpose of generating the OAB and manually regenerated the OAB. We put the account in the same Domain as Exchange instead of where the users are:
New-Mailbox -Arbitration -Name "OAB Master" -UserPrincipalName [email protected]******* -DomainController DC01.it.mydom.com Set-Mailbox -Identity "OAB Master" -Arbitration -OABGen $true -MaxSendSize 1GB -DomainController DC01.it.mydom.com Update-OfflineAddressBook -Identity "Default Offline Address Book" -Verbose
It took all of 30 seconds and then the OAB URLs started working again and displaying a properly formatted XML file. Outlook clients automatically started downloading the OAB with no issues.
Checking our OAB:
Get-OfflineAddressBook -Identity "Default Offline Address Book" |fl Server : GeneratingMailbox : AddressLists : {Default Global Address List} Versions : {Version4} IsDefault : True PublicFolderDatabase : PublicFolderDistributionEnabled : False GlobalWebDistributionEnabled : True WebDistributionEnabled : True ShadowMailboxDistributionEnabled : False UseE14SortOrder : False UseE14SortOrderOrdinal : False UseOrdinalSortedMultivaluedProperties : True LastTouchedTime : 7/20/2017 9:46:54 AM LastRequestedTime : LastFailedTime : LastNumberOfRecords : 2911 HttpHomeMdbLastProcessedBucket : 1000 LastGeneratingData : MailboxGuid: ee2ae703-5c35-4892-a43b-e2120618cc4a; DatabaseGuid: dcfde51e-44ff-4bb9-a44f-465998ffa3c8; Server: BROCKTON-03.it.int.viu.ca MaxBinaryPropertySize : 32768 MaxMultivaluedBinaryPropertySize : 65536 MaxStringPropertySize : 3400 MaxMultivaluedStringPropertySize : 65536 ConfiguredAttributes : {OfficeLocation, ANR, ProxyAddresses, ANR, PhoneticGivenName, ANR, GivenName, ANR...} DiffRetentionPeriod : 30 Schedule : {Sun.5:00 AM-Sun.5:15 AM, Mon.5:00 AM-Mon.5:15 AM, Tue.5:00 AM-Tue.5:15 AM, Wed.5:00 AM-Wed.5:15 AM...} VirtualDirectories : {} AdminDisplayName : Identity : Default Offline Address Book IsValid : True ExchangeVersion : 0.20 (15.0.0.0) Name : Default Offline Address Book DistinguishedName : CN=Default Offline Address Book,CN=Offline Address Lists,CN=Address Lists Container,CN=*****,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=*****,DC=*****,DC=**** Guid : 28a57cb5-b2c8-442a-81f3-a48a05f9ab7b ObjectCategory : ************/Configuration/Schema/ms-Exch-OAB ObjectClass : {top, msExchOAB} WhenChanged : 7/20/2017 9:47:15 AM WhenCreated : 2/2/2017 10:22:06 AM WhenChangedUTC : 7/20/2017 4:47:15 PM WhenCreatedUTC : 2/2/2017 6:22:06 PM OrganizationId : Id : Default Offline Address Book OriginatingServer : ***************************** ObjectState : Unchanged
The LastTouchedTime was now set. I’ll be checking again tomorrow to make sure the LastTouchedTime changes based on the Schedule.
Re-running this command confirmed there was now an account set to generate the OAB:
Get-Mailbox -Arbitration | where {$_.PersistedCapabilities -like “*OAB*”} | ft Name,Servername,Database
Re-running the OutlookWebServices test shows a successful OAB check:
Test-OutlookWebServices -Identity *********@********** -MailboxCredential (Get-Credential) |fl Source : ****************** ServiceEndpoint : ****************** Scenario : OfflineAddressBook ScenarioDescription : Offline Address Book Result : Success Latency : 46 Error : Verbose : [2017-07-20 17:52:34Z] Offline Address Book connecting to 'https://******************/OAB/28a57cb5-b2c8-442a-81f3-a48a05f9ab7b/oab.xml'. [2017-07-20 17:52:34Z] Test account: ****************** Password: ****** [2017-07-20 17:52:34Z] Offline Address Book request: User-Agent: ******************/Test-OutlookWebServices/****************** Authorization: Negotiate ****************** Host: ****************** [2017-07-20 17:52:34Z] Offline Address Book request: [2017-07-20 17:52:34Z] Offline Address Book response: request-id: 3dc2a268-33a2-428f-8caa-fff069600cb9 X-CalculatedBETarget: ****************** X-DiagInfo: ****************** X-BEServer: ****************** Persistent-Auth: true X-FEServer: ****************** Accept-Ranges: bytes Content-Length: 20831 Cache-Control: private Content-Type: text/xml Date: Thu, 20 Jul 2017 17:52:34 GMT ETag: W/"993c1dcb771d31:0" Last-Modified: Thu, 20 Jul 2017 16:46:54 GMT Set-Cookie: X-BackEndCookie=S-1-5-21-1542403177-3275365000-3172300963-32179=rJqNiZqNgb2tsLy0q7Cx0s/M0ZaL0ZaRi9GJlorRnJ6BzsbLzc/JzsjNyoHNz87I0s/I0s3Pq87Hxc/NxczK; expires=Thu, 20-Jul-2017 18:02:35 GMT; path=/OAB; secure; HttpOnly Server: Microsoft-IIS/8.5 X-AspNet-Version: 4.0.30319 X-Powered-By: ASP.NET MonitoringEventId : 5004
Finally the event viewer on our Exchange server should also show Event ID 17001 and 17002 for the MSExchange Mailbox Assistants Provider showing the start and completion of the OAB generation:
Log Name: Application Source: MSExchange Mailbox Assistants Provider Date: 7/20/2017 9:46:44 AM Event ID: 17001 Task Category: OAB Generator Assistant Level: Information Keywords: Classic User: N/A Computer: **************** Description: Generation of OAB "Default Offline Address Book" started. Dn: CN=Default Offline Address Book,CN=Offline Address Lists,CN=Address Lists Container,CN=****************,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=****,DC=****,DC=**** ObjectGuid: 28a57cb5-b2c8-442a-81f3-a48a05f9ab7b Log Name: Application Source: MSExchange Mailbox Assistants Provider Date: 7/20/2017 9:46:54 AM Event ID: 17002 Task Category: OAB Generator Assistant Level: Information Keywords: Classic User: N/A Computer: **************** Description: Generation of OAB "Default Offline Address Book" completed. Dn: CN=Default Offline Address Book,CN=Offline Address Lists,CN=Address Lists Container,CN=****************,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=****,DC=****,DC=**** ObjectGuid: 28a57cb5-b2c8-442a-81f3-a48a05f9ab7b GenerationTimeMilliseconds: S:OAB='Default Offline Address Book';I64:Status=0;Dt:StartTime=2017-07-20T16:46:45.2430374Z;Dt:EndTime=2017-07-20T16:46:54.4459486Z;S:DC=****;I32:Total.Records=2911;I32:Total.TempFiles=3;Ti:TimeWritingFiles=00:00:03.4627334;S:Org==****,;S:Wasted=True;S:HABEnabled=False;S:DroppedFilesOnly=False;I32:Total.RecordsAddedChurn=0;I32:Total.RecordsDeletedChurn=0;I32:Total.RecordsModifiedChurn=0;I32:UnCompressedFileSize=1882118;I32:CompressedFileSize=401288;I32:DiffFileSize=0;I32:ManifestSize=20831;S:ProductVersion=15.01.0669.032;S:GenerationType=None;Ti:PrepareFilesForOABGeneration.DownloadFilesFromMailbox.StoreRpcLatency=00:00:00.0470000;I32:PrepareFilesForOABGeneration.DownloadFilesFromMailbox.StoreRpcCount=17;Ti:PrepareFilesForOABGeneration.DownloadFilesFromMailbox.CpuTime=00:00:00.0156250;Ti:PrepareFilesForOABGeneration.DownloadFilesFromMailbox.ElapsedTime=00:00:00.0770176;Ti:PrepareFilesForOABGeneration.CpuTime=00:00:00.0156250;Ti:PrepareFilesForOABGeneration.ElapsedTime=00:00:00.0783983;Ti:Total.CpuTime=00:00:07.4218750;Ti:Total.ElapsedTime=00:00:09.1764103;I32:GenerateOrLinkTemplateFiles.GenerateTemplateFiles.FS.BytesRead=1495956;I32:GenerateOrLinkTemplateFiles.GenerateTemplateFiles.FS.BytesWritten=2208646;Ti:GenerateOrLinkTemplateFiles.GenerateTemplateFiles.FS.Reading.ElapsedTime=00:00:00.0059147;Ti:GenerateOrLinkTemplateFiles.GenerateTemplateFiles.FS.Writing.ElapsedTime=00:00:00.0177426;Ti:GenerateOrLinkTemplateFiles.GenerateTemplateFiles.CpuTime=00:00:02.6875000;Ti:GenerateOrLinkTemplateFiles.GenerateTemplateFiles.ElapsedTime=00:00:03.4445248;Ti:GenerateOrLinkTemplateFiles.CpuTime=00:00:02.6875000;Ti:GenerateOrLinkTemplateFiles.ElapsedTime=00:00:03.4445926;Ti:BeginGeneratingAddressListFiles.CpuTime=00:00:00;Ti:BeginGeneratingAddressListFiles.ElapsedTime=00:00:00.0017451;Ti:ProcessOnePageOfADResults.ADQuery.LdapLatency=00:00:01.3780000;I32:ProcessOnePageOfADResults.ADQuery.LdapCount=3;Ti:ProcessOnePageOfADResults.ADQuery.CpuTime=00:00:01.2968750;Ti:ProcessOnePageOfADResults.ADQuery.ElapsedTime=00:00:02.2469338;Ti:ProcessOnePageOfADResults.SortADResults.CpuTime=00:00:00.0468750;Ti:ProcessOnePageOfADResults.SortADResults.ElapsedTime=00:00:00.0264904;I32:ProcessOnePageOfADResults.ResolveLinks.ActiveManager.CalculatePreferredHomeServer.Count=5;Ti:ProcessOnePageOfADResults.ResolveLinks.ActiveManager.CalculatePreferredHomeServer.Latency=00:00:00.0046106;Ti:ProcessOnePageOfADResults.ResolveLinks.LdapLatency=00:00:00;I32:ProcessOnePageOfADResults.ResolveLinks.LdapCount=0;Ti:ProcessOnePageOfADResults.ResolveLinks.CpuTime=00:00:00;Ti:ProcessOnePageOfADResults.ResolveLinks.ElapsedTime=00:00:00.0216625;I32:ProcessOnePageOfADResults.WriteTempFiles.FS.BytesRead=0;I32:ProcessOnePageOfADResults.WriteTempFiles.FS.BytesWritten=1939744;Ti:ProcessOnePageOfADResults.WriteTempFiles.FS.Reading.ElapsedTime=00:00:00;Ti:ProcessOnePageOfADResults.WriteTempFiles.FS.Writing.ElapsedTime=00:00:00.0144446;Ti:ProcessOnePageOfADResults.WriteTempFiles.CpuTime=00:00:00.3125000;Ti:ProcessOnePageOfADResults.WriteTempFiles.ElapsedTime=00:00:00.3055291;Ti:ProcessOnePageOfADResults.CpuTime=00:00:01.6562500;Ti:ProcessOnePageOfADResults.ElapsedTime=00:00:02.6047902;I32:ProduceSortedFlatFile.FS.BytesRead=1928100;I32:ProduceSortedFlatFile.FS.BytesWritten=1882130;Ti:ProduceSortedFlatFile.FS.Reading.ElapsedTime=00:00:00.0049700;Ti:ProduceSortedFlatFile.FS.Writing.ElapsedTime=00:00:00.0059073;Ti:ProduceSortedFlatFile.CpuTime=00:00:00.0468750;Ti:ProduceSortedFlatFile.ElapsedTime=00:00:00.0408414;I32:FinishGeneratingAddressListFiles.CompressGeneratedFiles.FS.BytesRead=1882118;I32:FinishGeneratingAddressListFiles.CompressGeneratedFiles.FS.BytesWritten=1882118;Ti:FinishGeneratingAddressListFiles.CompressGeneratedFiles.FS.Reading.ElapsedTime=00:00:00.0025546;Ti:FinishGeneratingAddressListFiles.CompressGeneratedFiles.FS.Writing.ElapsedTime=00:00:01.3073740;Ti:FinishGeneratingAddressListFiles.CompressGeneratedFiles.CpuTime=00:00:01.3593750;Ti:FinishGeneratingAddressListFiles.CompressGeneratedFiles.ElapsedTime=00:00:01.3557792;I32:FinishGeneratingAddressListFiles.GenerateDiffFiles.FS.BytesRead=3764236;I32:FinishGeneratingAddressListFiles.GenerateDiffFiles.FS.BytesWritten=932;Ti:FinishGeneratingAddressListFiles.GenerateDiffFiles.FS.Reading.ElapsedTime=00:00:00.0116925;Ti:FinishGeneratingAddressListFiles.GenerateDiffFiles.FS.Writing.ElapsedTime=00:00:00.0000426;Ti:FinishGeneratingAddressListFiles.GenerateDiffFiles.CpuTime=00:00:01.6250000;Ti:FinishGeneratingAddressListFiles.GenerateDiffFiles.ElapsedTime=00:00:01.6246996;Ti:FinishGeneratingAddressListFiles.CpuTime=00:00:02.9843750;Ti:FinishGeneratingAddressListFiles.ElapsedTime=00:00:02.9806045;Ti:Publish.CpuTime=00:00:00.0312500;Ti:Publish.ElapsedTime=00:00:00.0251272;; TotalNumberofRecords: %5 TypeofGeneration: %6 UncompressedSizeBytes: %7 CompressedFilesSizeBytes: %8 ManifestSizeBytes: %9 BuildVersion %10 %11
References:
- https://technet.microsoft.com/en-us/library/gg247612(v=exchg.150).aspx
- https://support.microsoft.com/en-us/help/843483/description-of-offline-address-book-logging-in-outlook
- https://technet.microsoft.com/en-us/library/b7f26eca-b93b-4834-ba50-11febdefbb18(v=exchg.160)#CreateOrgMailboxes
- https://technet.microsoft.com/en-us/library/bb232155(v=exchg.160).aspx
- https://technet.microsoft.com/en-us/library/aa995963(v=exchg.160).aspx
- https://technet.microsoft.com/en-us/library/aa996917(v=exchg.150).aspx
- https://technet.microsoft.com/en-us/library/bb123595(v=exchg.141).aspx
- http://clintboessen.blogspot.ca/2016/09/0x80190194-oab-error-when-migrating-to.html
- https://social.technet.microsoft.com/wiki/contents/articles/34958.offline-address-book-configuration-in-exchange-2010-2016-coexistence.aspx
- http://msexchangeguru.com/2013/12/04/e2013-oab/
- http://www.careexchange.in/how-offline-address-books-works-in-exchange-2013/
- https://www.experts-exchange.com/articles/5064/9-Steps-to-end-OAB-nightmares.html
- https://technet.microsoft.com/en-us/library/cc546683.aspx
- http://www.msexchange.org/kbase/ExchangeServerTips/ExchangeServer2013/OutlookOWA/unable-download-offline-address-book.html
- https://social.technet.microsoft.com/Forums/lync/en-US/9206bf15-98f8-4d92-87b6-972b23f75d7b/oab-missing?forum=exchangesvrgeneral
Что это? Ошибка 500 – это то, что препятствует открытию той или иной страницы сайта. Вместо ожидаемой, например, статьи, перед пользователем возникает фраза Internal Server Error 500. Она сообщает о проблемах ресурса с подключением к серверу.
Как исправить? Устранить ошибку можно как со стороны пользователя сайта, так и его владельца. В первом случае способы не гарантируют на 100 %, что Error 500 моментально пропадает, но попробовать стоит. Больше возможностей в этом плане у собственника ресурса.
В статье рассказывается:
- Что значит код ошибки 500
- Основные причины возникновения ошибки 500
- Текст и внешний вид ошибки
- Советы по исправлению ошибки 500 для пользователя
- Рекомендации по исправлению ошибки 500 для владельца сайта
-
Пройди тест и узнай, какая сфера тебе подходит:
айти, дизайн или маркетинг.Бесплатно от Geekbrains
Значение 500 является кодом положения протокола НТТР. Из-за чего появляется ошибка 500? Происходит это потому, что случилась неисправность конфигурации сервера или пришёл сигнал о том, что компонент отказал. Когда возникает эта ошибка, программное обеспечение продолжает работать, но из-за серьёзных внутренних нарушений запросы обрабатываются некорректно.
Ошибка 500 значит, что пользовательский запрос неправильно переводится в действие. По этой причине возникают проблемы во время работы с сайтом. Нужно как можно скорее понять, из-за чего именно появилась ошибка, и устранить её.
Оповещение о том, что произошла ошибка 500, имеет текстовое описание. Наиболее частые варианты:
- Ошибка 500.
- Внутренняя ошибка сервера 500.
- Ошибка 500 Internal Server Error.
- Временная ошибка (500).
- Внутренняя ошибка сервера.
- 500 ошибка сервера.
- Внутренняя ошибка HTTP 500.
- Произошла непредвиденная ошибка.
- HTTP status 500 internal server error (перевод ― HTTP статус 500 внутренняя ошибка сервера).
Скачать файл
Визуальный вид и текстовое сопровождение ошибки могут отличаться у каждого пользователя, потому что версии страницы могут быть разными.
Вероятность столкнуться с такой неприятностью есть при работе с любым веб-ресурсом, браузером или устройством. Главное, понимать, что эта ошибка, как и другие, которые начинаются на цифру 5, является промахом разработчиков или администратора сайта и вашей вины в этом нет.
Основные причины возникновения ошибки 500
Мы уже выяснили, что данная ошибка появляется, когда сервер не смог обработать запрос, совершённый пользователем, в результате чего человек не может открыть ресурс, а поисковые системы с ним взаимодействовать. Проблему обязательно нужно устранить, но для начала следует найти причину её появления, среди которых может быть:
- Неправильный синтаксис файла .htaccess – это файл, в котором можно менять настройки при работе с веб-сервером Apache и корректировать его функционирование (управлять различными перенаправлениями, правами доступа к данным, опциями PHP, задавать собственные страницы ошибок и прочее).
- Неполадки в сценариях сайта, которые отвечают за дополнительные возможности и визуальные эффекты.
- Недостаточно оперативной памяти, чтобы выполнить скрипт.
- Ошибки в коде CMS, системы управления наполнением ресурса. В большинстве случаев (80 %) причиной являются конфликтующие плагины.
Текст и внешний вид ошибки
Вы узнали, что означает ошибка 500, теперь пришло время перейти к более подробному разбору возможных причин её появления. Иногда разобраться с этим вопросом можно и без помощи специалиста.
Вид ошибки может отличаться. Это зависит от того, из-за чего она возникла. Наиболее распространенные причины можно узнать по тому, как отображается ошибка и какой текст её сопровождает.
Internal Server Error
Данный вид ошибки – сигнал о том, что есть проблемы с файлом .htaccess (к примеру, он был неправильно настроен). Чтобы понять, действительно ли дело в .htaccess, добавьте к его названию в конце цифру один. Сделать это поможет FTP-клиент (например, FileZilla) или файловый менеджер на вашем хостинге (в Timeweb есть подобный, и он очень простой в использовании). После этой манипуляции попробуйте заново открыть сайт. Если ошибка не выскочила, значит, вы нашли, из-за чего она появилась.
Топ-30 самых востребованных и высокооплачиваемых профессий 2023
Поможет разобраться в актуальной ситуации на рынке труда
Подборка 50+ ресурсов об IT-сфере
Только лучшие телеграм-каналы, каналы Youtube, подкасты, форумы и многое другое для того, чтобы узнавать новое про IT
ТОП 50+ сервисов и приложений от Geekbrains
Безопасные и надежные программы для работы в наши дни
Уже скачали 18731
HTTP ERROR 500 или пустая страница
Подобное означает, что причина в сценариях сайта. Но надо уточнить насчёт пустой страницы, что это не только признак внутренней ошибки 500 в сервере.
Предлагаем детальнее разобраться с пустой страницей, обращаясь к инструментам разработчика. Через браузерную панель пользователь получает уведомления об ошибках и другую информацию (время запуска сайта, html-элементы и прочее).
Каким образом открывается панель разработчика? Для начала нажмите F12 (это подходит для большинства браузеров на Windows). Если вы пользуетесь Google Chrome на macOS, то вам нужно использовать сочетание кнопок Cmd+Opt+J. В случае Safari на macOS нужна комбинация Cmd+Opt+C, но перед тем, как её нажать, включите «Меню разработки» в разделе «Настройки» -> «Продвинутые».
Есть ещё один способ открыть панель разработчика: кликнуть правой кнопкой мыши в любом месте сайта и в открывшемся контекстном меню выбрать «Посмотреть код». После этого откройте вкладку «Сеть» (или Network) и посмотрите, какое значение указано в строке «Статус». Если дело в ошибке 500, то будет стоять эта цифра.
Советы по исправлению ошибки 500 для пользователя
Для начала расскажем, на что лучше не тратить своё время. Данная ошибка связана с сервером, поэтому делать что-то со стороны клиента (перезагружать роутер, менять браузер, переустанавливать программу) смысла нет.
- Заново откройте сайт
Ошибка 500 может появиться не только из-за серьёзных проблем с сервером, но и по причине временной перегрузки сайта. Перезагрузить страницу можно с помощью клавиш: на ПК — F5, ноутбуке — Fn + F5, на устройствах от Apple — Cmd + R.
Читайте также
- Очистите кэш и cookies браузера
Кэш и cookies нужны для того, чтобы при повторном открытии страницы не нужно было заново прогружать все данные, то есть они сохраняют информацию с первого посещения, за счёт чего в следующий раз сайт открывается быстрее.
Если на сервере была ошибка, то даже если её уже устранили, из-за кэша может открываться старая версия страницы с этой неполадкой.
Если ничего из этого вам не помогло, то остаётся ждать, когда владелец решит эту проблему, и вернуться на сайт позже.
- Обратитесь к владельцу сайта
Когда, например, в интернет-магазине часто всплывает ошибка 500, можно связаться с его владельцем. Информация с контактными данными, как правило, находится либо внизу страницы, либо в разделе «Контакты».
Чаще всего информация закрытая, но есть форма для обратной связи. Однако не факт, что вы получите ответ. Если нужные данные вы не нашли или ответа так и нет, можно воспользоваться такими вариантами: через Whois, хостинг-провайдера или регистратора домена, с помощью сторонних сервисов.
Рекомендации по исправлению ошибки 500 для владельца сайта
Стоит учитывать большое количество факторов: движок, на котором работает ваш сайт, на каком он хостинге расположен, какие недавние изменения были внесены. Как бы там ни было, зачастую универсальные методы убирают ошибку 500. Желательно попробовать все варианты, которые подойдут под специфику вашего ресурса.
- Устраните неполадки в синтаксисе файла .htaccess
Выше мы уже рассказывали, как понять, в нём ошибка или нет. Попробуйте изменить имя документа, к примеру, на .htaccess_, и заново открыть сайт. Если ошибка не вылезла, значит, дело всё-таки в .htaccess. Проанализируйте синтаксис документа на наличие лишних символов или опечаток. Если вы сохраняли прошлую версию настроек, то надо попробовать её вернуть, чтобы проверить, будет ли ошибка.
В некоторых случаях может помочь закомментирование строки Options в .htaccess – вставить # в её начале. Если ничего не поменялось, проделайте то же самое с другими строками, а потом по очереди убирайте # и смотрите на результат.
После изменения файла .htaccess надо проверить, сохранилось ли оно. Иногда хостер может выставить на документ права, которые мешают его менять. В этой ситуации вы можете скачать файл .htaccess к себе на устройство, открыть и отредактировать его в любом текстовом документе и залить обратно, заменив старую версию.
Точный инструмент «Колесо компетенций»
Для детального самоанализа по выбору IT-профессии
Список грубых ошибок в IT, из-за которых сразу увольняют
Об этом мало кто рассказывает, но это должен знать каждый
Мини-тест из 11 вопросов от нашего личного психолога
Вы сразу поймете, что в данный момент тормозит ваш успех
Регистрируйтесь на бесплатный интенсив, чтобы за 3 часа начать разбираться в IT лучше 90% новичков.
Только до 13 февраля
Осталось 17 мест
- Обновите РНР
Версии РНР, которые уже устарели, не поддерживают обновления безопасности, хуже работают и из-за них может быть некорректная работа плагинов и сценариев.
Может, для того, чтобы ваш сайт работал без перебоев, вам надо просто обновить РНР.
- Настройте права для CGL-скриптов
Одним из методов устранения ошибки 500 на сайте является выставление прав для CGL-скриптов. Если такие сценарии у вас есть, то их папки и файлы должны иметь такое право доступа: 0755 (drwxr-xr-x), которое даёт возможность менять их только владельцу, а остальные могут их лишь открывать и активировать. Когда на скриптах стоит другое право доступа, это может привести к появлению ошибки 500.
- Проверьте файлы CGL-скриптов
У правильных сценариев окончание строк в формате Unix (n), а не Windows (rn). Для сохранения корректного варианта нужно загружать код (в большинстве хостингов) по FTP в режиме ASCII. Если вы не помните, какие ранее были настройки, заново добавьте сценарии и посмотрите, появится или нет ошибка 500. К тому же CGL-скрипты могут быть причиной неправильных HTTP‑заголовков ответа. В данном варианте вы сможете заметить ошибку в логах.
- Проверьте плагины
Причина может скрываться в плагинах, которые вы недавно установили.
Нередко встречается такое, что отдельные элементы сайта или плагины не могут работать совместно друг с другом. Данная проблема становится причиной не только того, что сайт выдаёт ошибку 500, но и возникновения других неполадок на сервере. Если модели были установлены или обновлены не так давно, то можно попробовать их отключить через панель администратора. Есть вероятность, что после этого могут всплыть другие неполадки, но если ошибка 500 исчезла, значит, дело было в конфликте плагинов или компонентов.
- Проверьте лог ошибок
Более точный анализ проводится с помощью логов. Если объяснять простым языком, то лог – это своеобразный журнал, в котором хранится информация об ошибках, направленных запросах, подключениях, действий с документами и так далее. Так как данных в логах очень много, они делятся на категории, чтобы было проще найти то, что нужно.
Если в последнее время вы как-то меняли сайт, то это могло стать причиной появления ошибки с кодом состояния 500. Зайдите в логи и проверьте, нет ли там информации о проблемах. Если ошибки высветились, то надо их изучить и отменить последние изменения.
Как правило, хостеры предоставляют информацию о том, где найти логи и как их открыть с панели управления. Данные об этом есть в разделе помощи FAQ (frequently asked questions — часто задаваемые вопросы) на сайте хостинга.
- Оптимизируйте сценарии
Если написанные сценарии долго грузятся или вообще не могут запуститься из-за нехватки ресурсов, проанализируйте их содержимое. Может, код надо оптимизировать, чтобы он стал легче и быстрее загружался. Нередко сценариям недостаточно ресурсов при работе с виртуальным хостингом. У них есть жёсткий лимит на память, чтобы каждый пользователь имел равные возможности во время пребывания на выбранном сайте.
Разделите скрипты на части и проверьте каждый на эффективность их деятельности. Если вы обнаружили в коде много ненужных вызовов либо необходимый объём памяти постоянно растёт, нужно обязательно проработать эти моменты.
- Увеличьте объём оперативной памяти сервера
Встречаются ситуации, когда даже после оптимизации сценариев они продолжают занимать много памяти. Чтобы решить эту проблему, придётся начать пользоваться более дорогим пакетом обслуживания, который предлагает хостинг.
Либо, если есть вариант увеличить объём памяти, прибегнуть к нему. К тому же вы не будете платить за те функции, которые не нужны вашему ресурсу.
Если вы испробовали все возможные варианты, но ничего не помогло, лучше обратиться за помощью к службе технической поддержки. Укажите время, когда вылезла ошибка, и подробно расскажите, что пытались предпринять для её устранения. Специалисты подробно изучат настройки сайта и, если потребуется, обратятся к управляющим сервера на стороне хостинг-провайдера.
Читайте также
Ошибка выполнения запроса 500 является обобщенным кодом состояния НТТР, который говорит о том, что на сервере произошла какая-то неполадка, но более точно описать проблему сервер не может. Так что первым делом нужно узнать, что послужило причиной возникновения ошибки, и только после этого заниматься её устранением.
You try to load your classic ASP (Active Server Pages) website and all you can see in your browser is the all too familiar display of 500 Internal Server Error.
This page isn't working WEBSITE is currently unable to handle this request HTTP ERROR 500
What is 500 Internal Server Error
First of all, the 500 Internal Server Error is a very general HTTP status code that indicates something has gone wrong on the web server without any specifics on the exact problem.
This instruction is limited to solving a 500 error on IIS server for classic ASP websites, however some other instructions that’s related to IIS in general will help for troubleshooting IIS server for .NET applications as well.
As 500 Server Error message is very often vague, the task now is to find a more specific error message that will help us further analyze and troubleshoot the issue.
Enable Debugging and Send Errors to Browser
If the website is not in a production environment, the easiest way to do it is to enable the ASP Debugging Properties and send the errors to the browser by following these steps:
-
Launch Internet Information Services (IIS) Manager and on the left pane, select your ASP website and click on the ASP icon (Configure properties for ASP applications).
-
Under the ASP window, expand the Debugging Properties and set Enable Client-side Debugging, Enable Server-side Debugging, and Send Errors To Browser to True and click Apply.
Now, when you refresh your ASP website, you will see a more descriptive error message on your browser such as the following example:
System.Xml error '80131509' There is an error in the XML document. /itnota/failed-page.asp, line 289
With this information, you can right away open the file (e.g., itnota/failed-page.asp) and check line number 289. Again, this option is not recommended for a production website that’s still actively used and available for public since it exposes too much information publicly. The ideal way to do it is to replicate your production environment on a staging and try to reproduce the error on a lower environment.
Check IIS Log
Another way to check 500 Internal Server Error for your ASP website is by viewing IIS error logs. This is especially true if your ASP website is a public website.
Where to find the IIS Logs?
By default, the log for your website is stored on %SystemDrive%inetpublogsLogFile, but you should not use this settings for a production environment. Always set a custom path for your logs so your websites are easier to maintain in the long run. If you have a different physical hard drive for logs, even better. Make sure it’s set to Enabled.
For the sake of example, the log files are located in folder D:LogsITNota.com:
From the IIS log example below, the easiest way is to look for a pipe character (“|”) on the date and time when the error happens.
The error message can be broken down into two parts:
-
/itnota/failed-page.asp id=2087216&catId=749272
-
|289|80131509|There_is_an_error_in_the_XML_document.
The first part indicates the problematic file with its parameters which can be reconstructed by replacing the white space with a question mark (“?”) like so:
/itnota/failed-page.asp?id=2087216&catId=749272
The second part which starts with a pipe character (“|”) is the line number that caused the error, the error code, and the error description:
|289|80131509|There_is_an_error_in_the_XML_document.
From the above information, we are looking at the following information:
Item | Description |
---|---|
Filename | /itnota/failed-page.asp |
Line number | 289 |
Error code | 80131509 |
Error description | There_is_an_error_in_the_XML_document. |
Check the affected file by opening it in Visual Studio Code or any IDE.
If you use Visual Studio Code to read and write ASP or VBScript, click here for a way how to colorize your ASP code.