Ошибка SharePoint: “Не может импортировать веб-Часть”

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

struct pixel {
    unsigned char red;   // 0
    unsigned char green; // 1
    unsigned int alpha;  // 4 (gotta skip to an aligned offset)
    unsigned char blue;  // 8 (then skip 9 10 11)
};

// next offset: 12

Архитектура x86 всегда могла извлекать неверные адреса. Тем не менее, он медленнее, и когда несоосность перекрывает две разные строки кэша, тогда он вытесняет две строки кэша, когда выровненный доступ будет вытеснять только один.

Некоторым архитектурам на самом деле приходится ловить ложные недочетые чтения и записи и ранние версии архитектуры ARM (той, которая развивалась во всех современных мобильных процессорах) ... ну, на самом деле они просто вернули для них плохие данные. (Они проигнорировали младшие разряды.)

Наконец, обратите внимание, что строки кэша могут быть сколь угодно большими, а компилятор не пытается угадать их или сделать компромисс между пространством и скоростью. Вместо этого решения выравнивания являются частью ABI и представляют собой минимальное выравнивание, которое в конечном итоге равномерно заполняет линию кэша.

Значения TL; DR: важны.

11
задан 23 September 2008 в 13:20
поделиться

9 ответов

Понятый это.

Сообщение об ошибке является тем из .webpart файла:

<?xml version="1.0" encoding="utf-8"?>
<webParts>
  <webPart xmlns="http://schemas.microsoft.com/WebPart/v3">
    <metaData>
      <!--
      The following Guid is used as a reference to the web part class, 
      and it will be automatically replaced with actual type name at deployment time.
      -->
      <type name="7F8C4D34-6311-4f22-87B4-A221FA8735BA" />
      <importErrorMessage>Cannot import Project Filter.</importErrorMessage>
    </metaData>
    <data>
      <properties>
        <property name="Title" type="string">Project Filter</property>
        <property name="Description" type="string">Provides a list of Projects that can be used to Filter other Web Parts.</property>
      </properties>
    </data>
  </webPart>
</webParts>

Проблема состоит в том, что исходный .webpart файл был создан в 32-разрядной системе с Расширениями Visual Studio для установленного WSS.

Однако, поскольку я нахожусь теперь на 64-разрядной машине, VSEWSS недоступен, и я полагаю, что результаты в вышеупомянутом GUID, не заменяемом, поскольку я не использую те инструменты развертывания.

Замена GUID с полными работами имени типа.

Таким образом, при обнаружении с сообщением об ошибке от importErrorMessage узла затем проверьте, что узел типа в .webpart файле больше походит на это (несвязанный пример):

<type name="TitleWP.TitleWP, TitleWP, Version=1.0.0.0, Culture=neutral, PublicKeyToken=9f4da00116c38ec5" />

Это находится в формате: Класс, Пространство имен, Версия, Культура, PublicKey

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

8
ответ дан 3 December 2019 в 06:49
поделиться

Теперь я получаю ответ для подобной проблемы как указано ниже:

То, когда я пробую к добавленному, новая wep часть к странице, затем sharepoint показывают мне сообщение об ошибке, говорят мне - не Может импортировать мою веб-часть, это сообщение об ошибке определяют в .webpart файле.

Таким образом, я пытался добавить некоторые другие веб-части на странице, странном quesiton появлении, некоторые из них могут быть добавлены, некоторые из них не могут быть добавлены.

После того, как я проследил код своей веб-части и anaylsis их, я нашел причину:

Старый Код для веб-части ProjectInfo (мое веб-имя части):

namespace ProjectInfo
....
 public class ProjectInfo:System.Web.UI.WebControls.WebParts.Web.part
 {
        .....
        private SPWeb _spWeb;
        private SPList _spList;
        private string _listName = "ProjectDocs";
        ......
 }
public ProjectInfo()
 {
        .....
            _spWeb = SPContext.Current.Web;
            //It show me a error here when i trace the code
            _spList = _spWeb.Lists[_listName]; 
        .....
 }

Остановитесь теперь, я думал, что это, возможно, веб-страница init заказывает проблему. Веб-страница AS загружает веб-управление частью, constructrue функциональный ProjectInfo () будет работать сначала. На самом деле веб-страница havn't заканчивает свой init. к этому времени.

таким образом, я сделал тест. во-первых, я поместил хорошую сеть в страницу, она в порядке. затем, я пытаюсь поместить веб-часть в страницу, которая не может быть добавлена сейчас. ~~ хорошо!! Это работает..., потому что страница уже init. закончилась.

Хорошо! Я исправил свой код:

   namespace ProjectInfo
    ....
     public class ProjectInfo:System.Web.UI.WebControls.WebParts.Web.part
     {
            .....
            private SPWeb _spWeb;
            private SPList _spList;
            private string _listName = "ProjectDocs";
            ......
     }
    public ProjectInfo()
     {
            .....
                //Remove code in constructure function.
                //_spWeb = SPContext.Current.Web;
                //It show me a error here when i trace the code
                //_spList = _spWeb.Lists[_listName]; 
            .....
     }

   protected override void CreateChildControls()
        {
         ....
           base.CreateChildControls();

            _spWeb = SPContext.Current.Web;
            _spList = _spWeb.Lists[_listName];
          ....
         }

После того, как я тестирую, сообщение об ошибке не сделало случился снова.. LoL ~~

Надежда, которую это объясняет, поможет Вам.

1
ответ дан 3 December 2019 в 06:49
поделиться

Вы переработали свой рабочий процесс или сбросили IIS?

0
ответ дан 3 December 2019 в 06:49
поделиться

Шахта Solved.

я получал эту ошибку:

===========================================================================
Error importing WebPart. Cannot import ........ Web Part.
Failed to add webpart 
Exception Microsoft.SharePoint.WebPartPages.WebPartPageUserException: Cannot import ... Web Part.     at Microsoft.SharePoint.WebPartPages.WebPartImporter.CreateWebPart(Boolean clearConnections)     at Microsoft.SharePoint.WebPartPages.WebPartImporter.Import(SPWebPartManager manager, XmlReader reader, Boolean clearConnections, Uri webPartPageUri, SPWeb spWeb)     at Microsoft.SharePoint.WebPartPages.WebPartImporter.Import(SPWebPartManager manager, XmlReader reader, Boolean clearConnections, SPWeb spWeb)     at Microsoft.SharePoint.WebPartPages.WebPartQuickAdd.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)   
===========================================================================

"Не может импортировать webpart..."

Проблема была: несоответствие ГУИДАМ

Проверьте, является ли гуид на webpart классе, и в .xml и в .webpart классе тем же.

Я был вставляющим копию кодом из других webparts источников. (Загрузка Документа Mutliple Wepart на Codeplex), и забыл фиксировать гуиды.

0
ответ дан 3 December 2019 в 06:49
поделиться

Я также столкнулся с этой ошибкой, когда блоки в GAC, что моя веб-часть, на которую ссылаются, были подписаны другим файлом ключей строгого имени к тому, что я ожидал. Я узнал это, решая обновить эти DLLs. При вставке его в GAC я заметил, что было 2 записи для того же DLL, но у них были различные Маркеры открытых ключей

0
ответ дан 3 December 2019 в 06:49
поделиться

Я получил эту ошибку, когда я создал веб-часть базового класса и затем наследовал производный класс от нее. Базовый класс был прекрасен, но производный класс перестал работать, когда я пытался добавить его к веб-странице с той же ошибкой как исходное сообщение. В моем случае я должен был добавить общедоступный модификатор к классу:

public class DerivedWebPart : BaseWebPart

Также я добавил конструктора в производном классе для вызова базового класса одним - хотя я думаю, что Вам не должно быть нужно это действительно:

    public DerivedWebPart() : base()
    {
    }
0
ответ дан 3 December 2019 в 06:49
поделиться

У нас была такая же проблема, и мы обнаружили, что конструктор нашей веб-части вызывается WebPartImporter, а внутри конструктора мы выполняли SPSecurity.RunWithElevatedPrivileges.

По какой-то причине WebPartImporter не может справиться с этим. Итак, мы просто переместили наш код из конструктора в OnInit (где он действительно находился), и все в порядке.

6
ответ дан 3 December 2019 в 06:49
поделиться

Я видел эту аномалию несколько раз без хорошего разрешения.

Убедитесь, что ваша сборка, пространство имен, имя класса верны ВЕЗДЕ. Это несколько раз меня вешало.

Убедитесь, что у вас есть допустимая запись SafeControls.

Убедитесь, что ваш файл .webpart действителен (пусть SharePoint создаст его для вас, если вы можете)

Если вы абсолютно уверен, что все правильно, ну тогда вы застряли в том месте, в котором я был несколько раз. Единственное, что я могу придумать, это то, что VS неправильно компилирует сборку. Единственное исправление, которое я нашел, - это создать новый проект VS и настроить его так, как вам нужно, а затем скопировать ТЕКСТ своих старых файлов CS в новые файлы CS ... не копировать сами файлы ... цель иметь все свежее.

Это сработало для меня. Удачи.

1
ответ дан 3 December 2019 в 06:49
поделиться

Я обнаружил, что мой импорт не выполнялся в первый раз, но если я нажал «Создать» и добавил

Оттуда я взял копию XML и сохранил ее в своем проекте. После этого веб-часть работала отлично.

Мне потребовалось всего ДНИ, чтобы добраться до этой точки. Много потерянного времени.

0
ответ дан 3 December 2019 в 06:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: