Как я могу убедиться, что мой WebPart найден и зарегистрирован как безопасный?
При отладке моего WebPart, чтобы увидеть, почему его элементы управления не отображаются, я перевел страницу в режим редактирования в браузере, чтобы сначала удалить все лишние экземпляры WebPart, чтобы пройти через методы CreateChildControls() и т. Д. Только один раз.
При этом, хотя (перевод страницы в режим редактирования), я увидел, что каждая веб-часть содержала следующую ошибку:
Ошибка веб-части. Невозможно отобразить или импортировать веб-часть или элемент управления веб-формы на этой странице. Тип WebFormPDFGen.WebFormPDFGenWebPart.WebFormPDFGenWebPart, WebFormPDFGen, Version=1.0.0.0, Culture= нейтральный, PublicKeyToken=42314blabla не найден или не зарегистрирован как безопасный.
Какие? WebFormPDFGen.WebFormPDFGenWebPart.WebFormPDFGenWebPart не найден? Имя решения - WebFormPDFGen, WebPart - WebFormPDFGenWebPart, также как и файлы.cs и.webpart:
WebFormPDFGenWebPart.webpart содержит ссылку на необъяснимый объект (WebFormPDFGen.WebFormPDFGenWebPart.WebFormPDFGenWebPart):
<?xml version="1.0" encoding="utf-8"?>
<webParts>
<webPart xmlns="http://schemas.microsoft.com/WebPart/v3">
<metaData>
<type name="WebFormPDFGen.WebFormPDFGenWebPart.WebFormPDFGenWebPart, $SharePoint.Project.AssemblyFullName$" />
<importErrorMessage>$Resources:core,ImportErrorMessage;</importErrorMessage>
</metaData>
<data>
<properties>
<property name="Title" type="string">WebFormPDFGenWebPart</property>
<property name="Description" type="string">My WebPart</property>
</properties>
</data>
</webPart>
</webParts>
Итак... разве веб-часть не зарегистрирована как безопасная, как упоминается во второй части сообщения об ошибке? Что мне нужно сделать, чтобы зарегистрировать его как безопасный?
ОБНОВИТЬ
Я получаю ту же проблему во время выполнения с очень простой WebPart на основе пошагового руководства здесь:
Когда я добавляю WebPart на мою тестовую страницу, он хорошо отрисовывается - у него ожидаемое "Hello, world!" сообщение на основе кода из этого пошагового руководства, которое просто:
[ToolboxItemAttribute(false)]
public class XMLToPDFWebPart : WebPart
{
private string customMessage = "Hello, world!";
[WebBrowsable(true),
WebDescription("Displays a custom message"),
WebDisplayName("Display Message"),
Personalizable(PersonalizationScope.User)]
public string DisplayMessage
{
get { return customMessage; }
set { customMessage = value; }
}
protected override void CreateChildControls()
{
base.CreateChildControls();
LiteralControl message = new LiteralControl();
message.Text = DisplayMessage;
Controls.Add(message);
}
... но когда я впоследствии просматриваю страницу, когда запускаю другой проект /WebPart, она уже не только радостно щебетает: "Привет, мир!" но это взрывает следующий фогхорн в моем лице:
Ошибка веб-части. Невозможно отобразить или импортировать веб-часть или элемент управления веб-формы на этой странице. Тип XMLToPDF.XMLToPDFWebPart.XMLToPDFWebPart, XMLToPDF, Version=1.0.0.0, Culture= нейтральный, PublicKeyToken=42f314BleeBlahBloo не найден или не зарегистрирован как безопасный.
Почему теперь он решает, что WebPart потерян или небезопасен, когда он отображал его раньше?
ОБНОВЛЕНИЕ 2
Я получил сообщение об ошибке с номером корреляции при выборе и двухкратном щелчке на простой веб-части в галерее веб-частей. Это строки в файле журнала, которые содержат этот номер корреляции:
03/24/2015 13:33:21.37 w3wp.exe (0x1980) 0x0320 SharePoint Foundation Logging Correlation Data xmnv Medium Name=Request (GET:https://duckbilled.platypus.poisontoe:443/_layouts/WPPrevw.aspx?ID=208) 05556c29-2d56-4093-9a6a-15ed2346f3db
03/24/2015 13:33:21.39 w3wp.exe (0x1980) 0x0320 SharePoint Foundation Logging Correlation Data xmnv Medium Site=/ 05556c29-2d56-4093-9a6a-15ed2346f3db
03/24/2015 13:33:21.43 w3wp.exe (0x1980) 0x0320 Document Management Server Document Management cm6w Medium Template Discovery/InitScriptData: cannot get user profile, no UserProfileApplicationProxy exists in the current context 05556c29-2d56-4093-9a6a-15ed2346f3db
03/24/2015 13:33:21.43 w3wp.exe (0x1980) 0x0320 Document Management Server Document Management cm6w Medium Template Discovery/InitScriptData: cannot get user profile, no UserProfileApplicationProxy exists in the current context 05556c29-2d56-4093-9a6a-15ed2346f3db
03/24/2015 13:33:21.45 w3wp.exe (0x1980) 0x0320 SharePoint Foundation Monitoring b4ly High Leaving Monitored Scope (EnsureListItemsData). Execution Time=11.0956839486583 05556c29-2d56-4093-9a6a-15ed2346f3db
03/24/2015 13:33:21.46 w3wp.exe (0x1980) 0x0320 SharePoint Foundation General avro High Relying on fallback logic in VghostPageManager::getGhostDocument() for document: 'C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\Template\Features\XMLToPDF_Feature1\XMLToPDFWebPart\XMLToPDFWebPart.webpart' 05556c29-2d56-4093-9a6a-15ed2346f3db
03/24/2015 13:33:21.46 w3wp.exe (0x1980) 0x0320 SharePoint Foundation General avro High Relying on fallback logic in VghostPageManager::getGhostDocument() for document: 'C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\Template\Features\XMLToPDF_Feature1\XMLToPDFWebPart\XMLToPDFWebPart.webpart' 05556c29-2d56-4093-9a6a-15ed2346f3db
03/24/2015 13:33:21.46 w3wp.exe (0x1980) 0x0320 SharePoint Foundation General avro High Relying on fallback logic in VghostPageManager::getGhostDocument() for document: 'C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\60\Template\Features\XMLToPDF_Feature1\XMLToPDFWebPart\XMLToPDFWebPart.webpart' 05556c29-2d56-4093-9a6a-15ed2346f3db
03/24/2015 13:33:21.46 w3wp.exe (0x1980) 0x0320 SharePoint Foundation General avro High Relying on fallback logic in VghostPageManager::getGhostDocument() for document: 'C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\Template\Features\XMLToPDF_Feature1\XMLToPDFWebPart\XMLToPDFWebPart.webpart' 05556c29-2d56-4093-9a6a-15ed2346f3db
03/24/2015 13:33:21.46 w3wp.exe (0x1980) 0x0320 SharePoint Foundation General avro High Relying on fallback logic in VghostPageManager::getGhostDocument() for document: 'C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\Template\Features\XMLToPDF_Feature1\XMLToPDFWebPart\XMLToPDFWebPart.webpart' 05556c29-2d56-4093-9a6a-15ed2346f3db
03/24/2015 13:33:21.46 w3wp.exe (0x1980) 0x0320 SharePoint Foundation General avro High Relying on fallback logic in VghostPageManager::getGhostDocument() for document: 'C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\60\Template\Features\XMLToPDF_Feature1\XMLToPDFWebPart\XMLToPDFWebPart.webpart' 05556c29-2d56-4093-9a6a-15ed2346f3db
03/24/2015 13:33:21.46 w3wp.exe (0x1980) 0x0320 SharePoint Foundation General 8kh7 High Cannot complete this action. Please try again. 05556c29-2d56-4093-9a6a-15ed2346f3db
03/24/2015 13:33:21.46 w3wp.exe (0x1980) 0x0320 SharePoint Foundation General 8e2s Medium Unknown SPRequest error occurred. More information: 0x80070002 05556c29-2d56-4093-9a6a-15ed2346f3db
03/24/2015 13:33:21.47 w3wp.exe (0x1980) 0x0320 SharePoint Foundation Runtime tkau Unexpected Microsoft.SharePoint.SPException: An error occurred when previewing the Web Part. at Microsoft.SharePoint.WebPartPages.WebPartPreview.CreateChildControls() at System.Web.UI.Control.EnsureChildControls() at System.Web.UI.Control.PreRenderRecursiveInternal() at System.Web.UI.Control.PreRenderRecursiveInternal() at System.Web.UI.Control.PreRenderRecursiveInternal() at System.Web.UI.Control.PreRenderRecursiveInternal() at System.Web.UI.Control.PreRenderRecursiveInternal() at System.Web.UI.Control.PreRenderRecursiveInternal() at System.Web.UI.Control.PreRenderRecursiveInternal() at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) 05556c29-2d56-4093-9a6a-15ed2346f3db
03/24/2015 13:33:21.57 w3wp.exe (0x1980) 0x0320 SharePoint Foundation Monitoring b4ly Medium Leaving Monitored Scope (Request (GET:https://duckbilled.platypus.poisontoe:443/_layouts/WPPrevw.aspx?ID=208)). Execution Time=208.394083605598 05556c29-2d56-4093-9a6a-15ed2346f3db
Обратите внимание, что если я пытаюсь добавить эту веб-часть на страницу сейчас, она говорит мне: "Операция не может быть завершена, поскольку элемент был удален из галереи".
ОБНОВЛЕНИЕ 3
Кажется, что очистка, восстановление и [повторное] развертывание по крайней мере временно исправляют новую, очень простую веб-часть:
... но мой уровень уверенности в том, что он не станет WebPart-non-grata, не совсем приближается к высотам Эвереста - может быть, Mt. Тимм.
Тем не менее, как вы можете видеть, оригинальная WebPart все еще вызывает ошибку.
1 ответ
Я бы посоветовал скачать надстройку для visual studio. Это называется CKSDev tools
Это позволяет вам упаковать ваше решение SharePoint в WSP, а затем развернуть пакет, и это должно позаботиться о ваших безопасных элементах управления.
Это поможет вам в отладке и, как правило, замечательно, когда дело доходит до разработки SharePoint. Они даже добавили несколько шаблонов для таких вещей, как шаблоны сайтов, которые сэкономят вам массу времени.
Возможно, вам придется создать новый проект SharePoint и перенести ваш код, но как только вы запустите CKSDev, вы должны быть великолепны.
Другой вариант - найти web.config вашего веб-приложения и добавить безопасный элемент управления со сборками, о которых стонет ваше решение, но я бы не стал этого делать, потому что у вас возникнет та же проблема при переносе его в производство и при запуске. играя с этими файлами, легко совершать ошибки, которые могут причинить вам больше боли.
ура
Truez