Я полагаю, что если вы не нашли какой-то конкретный элемент, то попытка получить elem.text
из него выдает исключение. Если это так, то вы можете сделать это:
d["address"] = item.find("span", {"itemprop":"streetAddress"}).text if item.find("span", {"itemprop":"streetAddress"}) else "-"
или другим способом избежать исключения, но таким образом вы не сможете установить значение по умолчанию, например "-":
d["address"] = item.find("span", {"itemprop":"streetAddress"}) and item.find("span", {"itemprop":"streetAddress"}).text
Я не пробовал писать в журнал событий Windows, но в качестве альтернативы вы можете записать в журналы SharePoint в улье 12, используя следующее:
Microsoft.Office.Server.Diagnostics.PortalLog.LogString("your message here!");
Надеюсь, это поможет
Iain
EventLog Entries in SharePoint:
For WebParts Log the errors in the ULS logs which is present in 12 hive.
For SharePoint Application pages, wrtie the errors in the Event Logs.
All other list and Library related errors will be noted down in the ULS logs only.
Thanks
Обновление
Для записи в журнал событий требуются повышенные привилегии в веб-части:
SPSecurity.RunWithElevatedPrivileges(delegate { EventLog.WriteEntry(...
Разрешения на:
HKLM \ SYSTEM \ CurrentControlSet \ Services \ Eventlog \ YourWebPartLog
Я думаю, это причина вашего горя. Какие у него разрешения по сравнению с разрешениями вашего пула приложений?
Посмотри на эту статью, дружище, это может помочь .. http://whatsthepointofsharing.wordpress.com/2009/05/01/registry-access-is-not-allowed/