문제

가 있는 웹 파트를 발전시켜 나가고 있습니다면 나는 수동으로 설치 웹 파주셔서 감사합니다.

그러나 때 나는 포장 웹 일부의 지시에 따라 이 웹 사이트로 가이드:http://www.theartofsharepoint.com/2007/05/how-to-build-solution-pack-wsp.html

이것을 얻을 오류 로그파일:

09/23/2008 14:13:03.67  w3wp.exe (0x1B5C)                           0x1534  Windows SharePoint Services     Web Parts                       8l4d    Monitorable Error importing WebPart. Cannot import Project Filter.   
09/23/2008 14:13:03.67  w3wp.exe (0x1B5C)                           0x1534  Windows SharePoint Services     Web Parts                       89ku    High        Failed to add webpart http%253A%252F%252Fuk64p12%252FPWA%252F%255Fcatalogs%252Fwp%252FProjectFilter%252Ewebpart;Project%2520Filter.  Exception Microsoft.SharePoint.WebPartPages.WebPartPageUserException: Cannot import Project Filter.     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(...  
09/23/2008 14:13:03.67* w3wp.exe (0x1B5C)                           0x1534  Windows SharePoint Services     Web Parts                       89ku    High        ...String eventArgument)     

에 관련된 비트입니다:

http%253A%252F%252Fuk64p12%252FPWA%252F%255Fcatalogs%252Fwp%252FProjectFilter%252Ewebpart;Project%2520Filter.
Exception Microsoft.SharePoint.WebPartPages.WebPartPageUserException: Cannot import Project Filter.
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)

과 함께 오히려 간결한 오류 메시지:"가져올 수 없습 웹 part".

전 검사 및 my.dll 등록된 안전,그것은에서의 GAC,는 기능이 활성화,그리고 부분을 웹에서 나타나 웹의 일부 라이브러리를 모두와 함께 올바른 속성을 보여주는 웹 파일을 성공적으로 읽을 수 있었다.

모든 나타나 장소에서,아직 나는 오류를 약간의 설명에서 SharePoint 의하는 방법을 해결합니다.

어떤 도움을 찾는 솔루션은 감사합니다.

도움이 되었습니까?

해결책

그것을 알아 냈습니다.

오류 메시지는 .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 파일이 WSS를위한 Visual Studio Extensions가있는 32 비트 시스템에서 작성되었다는 것입니다.

그러나 지금 64 비트 기계 VSEWSS를 사용할 수 없으므로 배포 도구를 사용하지 않기 때문에 위의 안내가 대체되지 않는다고 생각합니다.

GUID를 전체 유형 이름으로 바꾸는 것은 작동합니다.

따라서 importerRorMessage 노드에서 오류 메시지가 발생하면 .webPart 파일의 유형 노드가 더 비슷한 것으로 보입니다 (관련없는 예).

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

이것은 클래스, 네임 스페이스, 버전, 문화, publickey 형식입니다.

Safe Controls 목록에 있으므로 SharePoint 인스턴스와 관련된 web.config 파일에서 쉽게 가져올 수 있습니다.

다른 팁

우리가 이 같은 문제는 것을 발견하고 생성자의 우리의 웹 파트가 호출되는지 WebPartImporter 및 생성자에서 우리가 하고 있던 SPSecurity.RunWithElevatedPrivileges.

어떤 이유로 WebPartImporter 처리할 수 없다.그래서,우리는 단순히 이동하는 우리의 코드의 생성자를 OnInit(여기서 그것은 정말에 속한)모든 잘 됩니다.

모든 위대한 제안. 내 문제는 독특하고 어리석은 일이었습니다. 솔루션을 첫 번째 웹 응용 프로그램에 배치했지만 두 번째 웹 응용 프로그램은 아닙니다. 그러나 SharePoint는 여전히 두 번째 웹 앱 사이트 컬렉션에서 기능을 활성화 할 수있었습니다 (이유는 확실하지 않음). 이것은 두 번째 웹 앱 이이 web.config 파일에 안전한 제어 항목이 없음을 의미했습니다 (그리고 첫 번째 web.config를 어리석게 확인했습니다).

따라서 올바른 웹 응용 프로그램/web.config를보고 있습니다.

이제 아래와 비슷한 문제에 대한 답변을 얻습니다.

페이지에 새 WEP 부분을 추가하려고하면 SharePoint가 오류 메시지를 표시합니다.

그래서 나는 페이지에 몇 가지 Ohter 웹 부품을 추가하려고 시도했습니다. 이상한 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]; 
        .....
 }

지금 멈추십시오. 웹 페이지가 주문 문제 일 수 있다고 생각했습니다. 웹 페이지로드 웹 파트 컨트롤로서 Conspuctrue Function ProjectInfo ()가 처음에 실행됩니다. 사실, 웹 페이지는 초기를 끝내지 못했습니다. 당시.

그래서 나는 시험을했다. 첫째, 페이지에 좋은 웹을 넣었습니다. 괜찮습니다. 그런 다음 지금 막을 수없는 페이지에 웹 부품을 넣으려고합니다. ~~ OK !! 페이지가 이미 시작 되었기 때문에 작동합니다. 완성된.

확인! 코드를 수정했습니다.

   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 ~~

이 설명이 도움이되기를 바랍니다.

나는 좋은 결의 없이이 이상을 여러 번 보았다.

어셈블리, 네임 스페이스, 클래스 이름이 어디에서나 정확한지 확인하십시오. 이것은 나를 두 번 이상 매달 렸습니다.

유효한 Safecontrols 항목이 있는지 확인하십시오.

.webPart 파일이 유효한지 확인하십시오 (가능한 경우 SharePoint를 작성하십시오).

당신이 모든 것이 정확하다는 것이 절대적으로 긍정적이라면, 당신은 내가 여러 번 있었던 곳에 갇혀 있습니다. 내가 생각해 낼 수있는 유일한 것은 VS가 어셈블리를 잘못 컴파일하는 것입니다. 내가 찾은 유일한 수정 사항은 새 대 프로젝트를 작성하고 필요한 방법을 설정 한 다음 이전 CS 파일의 텍스트를 새 CS 파일에 복사하는 것입니다 ... 파일 자체를 복사하지 마십시오 ... 목표 목표입니다. 모든 것을 신선하게하는 것입니다.

이것은 나를 위해 일했습니다. 행운을 빕니다.

작업자 프로세스를 재활용하거나 II를 재설정 했습니까?

광산을 해결했습니다.

이 오류가 발생했습니다.

===========================================================================
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 클래스와 .xml 및 .webpart 클래스의 Guid가 동일한지 확인하십시오.

다른 웹 파트 소스에서 코드를 복사했습니다. (CodePlex에 Wepart를 업로드 한 Mutliple 문서 업로드) 및 Guid를 수정하는 것을 잊었습니다.

또한 내 웹 부품이 언급 한 GAC의 어셈블리가 내가 기대했던 것과 다른 강력한 이름 키 파일로 서명했을 때이 오류를 경험했습니다. 이 DLL을 업데이트하기로 결정할 때 이것을 찾았습니다. GAC에 삽입 할 때 동일한 DLL에 대해 2 개의 항목이 있었지만 다른 공개 키 토큰이 있음을 알았습니다.

기본 클래스 웹 부분을 만들었을 때이 오류가 발생한 다음 파생 클래스를 상속했습니다. 기본 클래스는 괜찮 았지만 원래 게시물과 동일한 오류가있는 웹 페이지에 추가하려고 할 때 파생 클래스가 실패했습니다. 제 경우에는 a를 추가해야했습니다 공공의 클래스 수정 자 :

public class DerivedWebPart : BaseWebPart

또한 기본 클래스 1을 호출하기 위해 파생 클래스의 생성자를 추가했습니다.

    public DerivedWebPart() : base()
    {
    }

나는 이것과 매우 유사한 문제가 있었지만 Guids는 문제가되지 않았습니다. 내 WebPart는 CLSCompliannt 속성은 false로 설정됩니다. 그렇게 :

namespace MyNamespace
{

    [CLSCompliant(false)]
    [Guid("...")]
    public class MyWidget : MyWebPartBaseClass
    {

    }
}

나는 처음으로 가져 오지 않았다는 것을 알았지 만 '새'를 클릭하여 추가하면 효과가있을 것입니다.

거기에서 나는 XML 사본을 잡고 내 프로젝트에 저장했다. 웹 부분은 그 후에 훌륭하게 작동했습니다.

이 시점에 도달하는 데 며칠이 걸렸습니다. 낭비 된 시간이 많습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top