Как я могу убедиться, что мой 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, а затем развернуть пакет, и это должно позаботиться о ваших безопасных элементах управления.

Инструменты CKSDEV

Это поможет вам в отладке и, как правило, замечательно, когда дело доходит до разработки SharePoint. Они даже добавили несколько шаблонов для таких вещей, как шаблоны сайтов, которые сэкономят вам массу времени.

Возможно, вам придется создать новый проект SharePoint и перенести ваш код, но как только вы запустите CKSDev, вы должны быть великолепны.

Другой вариант - найти web.config вашего веб-приложения и добавить безопасный элемент управления со сборками, о которых стонет ваше решение, но я бы не стал этого делать, потому что у вас возникнет та же проблема при переносе его в производство и при запуске. играя с этими файлами, легко совершать ошибки, которые могут причинить вам больше боли.

ура

Truez

Другие вопросы по тегам