Я использую элемент управления XmlFormView на настраиваемой странице aspx, размещенной на сайте SharePoint.Недавно наша SharePoint была обновлена до 2010 года, и после этого у меня возникли проблемы с проверкой формы, вызванной XmlForm.Submit ().
Пользовательская страница фактически использует исключение, выданное SharePoint, если проверка выполняетсяиз представленной формы не удается.Сообщение проверки форматируется и отображается пользователю дружественным способом.
Когда отправляется форма, содержащая недопустимые данные, предоставленные пользователем, возвращается «Microsoft.Office.InfoPath.Server.Util.InfoPathFatalException».,Это исключение не содержит информацию о полях ведьмы содержит недопустимые данные.На самом деле я ожидал "Microsoft.Office.InfoPath.Server.SolutionLifetime.DataAdapterException".(Подтверждение выполнено успешно и исключение не выдается, если форма не содержит ошибок проверки)
Если я сниму флажок «Включить только мой код (только управляемый)» в Visual Studio и отладлю отправку формы, я получуследующее исключение (содержит датские тексты):
Microsoft.Office.InfoPath.Server.SolutionLifetime.DataAdapterExceptionСообщение = Formularen kan ikke afsendes, ford den Indeholder valideringsfejl.Fejlene er angivet med en rød stjerne (обязательный сборщик) eller omgivet af en rød, стиплет стрег (ugyldige værdier).Войлок Эллер груп: MunicipalRealPropertyIdentifierFejl: Der må kun angives et bestemt mønsterИсточник = Microsoft.Office.InfoPath.ServerBypassWatson = верноLOGID = 5567SaveUserSession = ложьUserMessage = Formularen kan ikke afsendes, for for den Indeholder valideringsfejl.Fejlene er angivet med en rød stjerne (обязательный сборщик) eller omgivet af en rød, стиплет стрег (ugyldige værdier).Войлок Эллер груп: MunicipalRealPropertyIdentifierFejl: Der må kun angives et bestemt mønsterOverrideTopLevelMessage = верноТрассировки стека:вMicrosoft.Office.InfoPath.Server.SolutionLifetime.DatabaseHelper.CheckErrorBoard (документ документа, адаптер адаптера данных, XPathNavigator subtreeToCheck, логическая схемаErrorOnly)InnerException:
Это хорошо!Исключение содержит информацию об ошибках проверки.Продолжаю отладку.Требуемое исключение перебрасывается, и вывод показывает:
Шаг в: переход по методу без символов 'Microsoft.Office.InfoPath.Server.SolutionLifetime.DatabaseHelper.CheckErrorBoard' Шаг в: переход по методу без символов 'Microsoft.Office.InfoPath.Server.DocumentLifetime.Document.ExecuteDefaultSubmitAction '
Это все еще хорошо!Я продолжаю отладку, но теперь исходное исключение потеряно и возвращено исключение InfoPathFatalException.
Microsoft.Office.InfoPath.Server.Util.InfoPathFatalExceptionСообщение = исключение типа 'Microsoft.Office.InfoPath.Server.Util.InfoPathFatalException' было сгенерировано.Источник = Microsoft.Office.InfoPath.ServerBypassWatson = ложьSaveUserSession = ложьUserMessage = Der opstod en alvorlig fejl в соответствии с формулами.Трассировки стека:в Microsoft.Office.InfoPath.Server.Util.GlobalStorage.get_CurrentFormId ()InnerException:
Теперь вывод VS выглядит следующим образом:
Шаг в: переход по методу без символов.символы 'Microsoft.Office.InfoPath.Server.DocumentLifetime.Document.ExecuteDefaultSubmitAction' Шаг в: переход на метод без символов 'Microsoft.Office.InfoPath.Server.DocumentLifetime.OMExceptionManager.ExecuteOMCallWithExceptions'
новичок, когда дело доходит до SharePoint, но я думаю, что это немного похоже на проблему безопасности?Кажется тисходное исключение не «разрешено» отправлять сообщения вызывающему абоненту.
Я пытался включить полную регистрацию в SharePoint, но когда я смотрю журналы в ".. \ Program Files \ Common Files \ Microsoft Shared \ Расширения веб-сервера \ 14 \ LOGS", я вижу только "оригинал исключение, а не почему оно перезаписано?
Дополнительная информация:
В настоящее время сайт работает с настройкой конфигурации:
<trust level="Full" originUrl="" />
У кого-нибудь есть идеи по этому вопросу?
В SharePoint 2007 желаемое исключение возвращается обратно вызывающей стороне.