SharePoint 오류가:"가져올 수 없습 웹 파트를"
-
02-07-2019 - |
문제
가 있는 웹 파트를 발전시켜 나가고 있습니다면 나는 수동으로 설치 웹 파주셔서 감사합니다.
그러나 때 나는 포장 웹 일부의 지시에 따라 이 웹 사이트로 가이드: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 사본을 잡고 내 프로젝트에 저장했다. 웹 부분은 그 후에 훌륭하게 작동했습니다.
이 시점에 도달하는 데 며칠이 걸렸습니다. 낭비 된 시간이 많습니다.