Frage

Ich habe eine SharePoint-Lösung, die Vorlagen, mehrere Bibliotheken, Webparts usw. enthält. In diesem Fall habe ich einen Fehler in einem meiner Webparts gefunden.Wie kann ich nur diesen einen Webpart aktualisieren, damit ich den Fehler beheben kann?

Ich denke, dass ich ein Visual Studio-Projekt erstellen muss, das nur Webparts enthält. Ich habe Visual Studio nicht auf meinem Produktionsserver, daher kann ich es nicht zum Bereitstellen der Lösung verwenden.Wie kann ich webpart.wsp korrekt für die Lösung bereitstellen?Muss ich das Webpart zuerst irgendwie entfernen oder wie kann ich das Webpart richtig reparieren?

Können Sie mir bitte eine Anleitung geben, wie ich das beheben kann?


Nachdem ich Update-SPSolution ausgeführt habe, geben SharePoint-Webparts eine Fehlermeldung aus: $Resources:core,ImportErrorMessage;

Ich habe überprüft, ob die Webpart-Funktion aktiviert ist und unter Websiteeinstellungen / Webdesigner-Galerien / Webparts zu finden ist.Aber wenn ich versuche, es zu öffnen, gibt es mir die gleiche Fehlermeldung.

Ich habe SharePointLogViewer verwendet:

Fehler beim Importieren von WebPart.Assembly EBIC SPF, Version=1.0.0.0, Culture=neutral, PublicKeyToken=90615eedf85cc25e, TypeName.Full_Template.WebParts.PersonalItems.PersonalItems.$Ressourcen:core,ImportErrorMessage;

Anwendungsfehler beim Zugriff auf /_layouts/15/WPPrevw.aspx, Fehler=Objektverweis nicht auf eine Instanz eines Objekts gesetzt.bei Full_Template.WebParts.PersonalItems.PersonalItems.<>c__DisplayClass5.<.ctor>b__0() bei Microsoft.SharePoint.SPSecurity.<>c__DisplayClass5.b__3() bei Microsoft.SharePoint.Utilities.SecurityContext.RunAsProcess(CodeToRunElevated secureCode) bei Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges(WaitCallback secureCode, Object param) bei Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges(CodeToRunElevated secureCode) bei Full_Template.WebParts.PersonalItems.PersonalItems..ctor()

System.NullReferenceException: Objektverweis nicht auf eine Instanz eines Objekts festgelegt.bei Full_Template.WebParts.PersonalItems.PersonalItems.<>c__DisplayClass5.<.ctor>b__0() bei Microsoft.SharePoint.SPSecurity.<>c__DisplayClass5.b__3() bei Microsoft.SharePoint.Utilities.SecurityContext.RunAsProcess(CodeToRunElevated secureCode) bei Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges(WaitCallback secureCode, Object param) bei Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges(CodeToRunElevated secureCode) bei Full_Template.WebParts.PersonalItems.PersonalItems..ctor()

Fehlermeldung für Ausnahme System.Web.HttpUnhandledException (0x80004005) abrufen: Ausnahme vom Typ „System.Web.HttpUnhandledException“ wurde ausgelöst.---> Microsoft.SharePoint.WebPartPages.WebPartPageUserException: $Resources:core,ImportErrorMessage;---> System.Reflection.TargetInvocationException: Ausnahme wurde vom Ziel eines Aufrufs ausgelöst.---> System.NullReferenceException: Objektreferenz nicht auf eine Instanz eines Objekts gesetzt.bei Full_Template.WebParts.PersonalItems.PersonalItems.<>c__DisplayClass5.<.ctor>b__0() bei Microsoft.SharePoint.SPSecurity.<>c__DisplayClass5.b__3() bei Microsoft.SharePoint.Utilities.SecurityContext.RunAsProcess(CodeToRunElevated secureCode) bei Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges(WaitCal...

...lback secureCode, Object param) bei Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges(CodeToRunElevated secureCode) bei Full_Template.WebParts.PersonalItems.PersonalItems..ctor() --- Ende der Stack-Trace für innere Ausnahmen --- bei System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck) at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnlyCtor)Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) bei System.Activator.CreateInstance (Type type, Boolean nonPublic) bei System.Activator.Creat...


Das Webpart ist groß, also füge ich nur Teile des Codes hinzu:

Guid siteID = SPContext.Current.Site.ID;
            SPSecurity.RunWithElevatedPrivileges(delegate()
            {
                using (SPSite site = new SPSite(siteID))
                {
                    using (SPWeb web = site.OpenWeb())
                    {
                        try
                        {
                            SPList oList2 = web.Lists["config"];
                SPListItemCollection collListItems2 = oList2.Items;
                                foreach (SPListItem item in collListItems2)
                                {
                // LOOP ITEMS
                }
                        catch (Exception ex)
                        {
                            Label label = new Label();
                            label.Text = "DEBUG: " + ex.Message + "INNERDEBUG: " + ex.InnerException.Message;
                            //label.Text = ex.Message;
                            this.Controls.Add(label);
                        }
                    }
                }
            });




SPSite siteColl = SPContext.Current.Site;
                    SPWeb site = SPContext.Current.Web;
                    SPSecurity.RunWithElevatedPrivileges(delegate()
                    {
                        using (SPSite ElevatedsiteColl = new SPSite(siteColl.ID))
                        {
                            using (SPWeb ElevatedSite = ElevatedsiteColl.OpenWeb(site.ID))
                            {
                                SPUser currUser = site.CurrentUser; //not the ElevatedSite.CurrentUser
                                loggeduser = currUser.ToString();

                                // parse logged user account
                                int i = loggeduser.IndexOf('\\') + 1;
                                string d = loggeduser.Substring(i);
                                d.Substring(1);
                                loggeduser = d;
                            }
                        }
                    });





SPSecurity.RunWithElevatedPrivileges(delegate()
                        {
                            foreach (SPWebApplication webApp in SPWebService.ContentService.WebApplications)
                            {
                                foreach (SPSite siteCollection in webApp.Sites)
                                {
                                    foreach (SPWeb web in siteCollection.RootWeb.GetSubwebsForCurrentUser())
                                    {
                                        if (web.ID.ToString() == orgPageFromUrl)
                                            oWebsite = web;
                                    }
                                }
                            }
                        });
War es hilfreich?

Lösung

Wenn Sie ein WSP wie das von Ihnen erwähnte webpart.wsp haben, können Sie es mithilfe der SharePoint-Verwaltungsshell auf Ihrem Produktionsserver bereitstellen.

Verwenden Sie Powershell, wenn Sie nur die Lösung aktualisieren müssen

Update-SPSolution –Identity "<wsp package name>" -LiteralPath "<physical path of the 
wsp package>" –GacDeployment 
e.g.: Update-SPSolution –Identity "test.wsp" -LiteralPath "C:\test.wsp" –GacDeployment

Zum Hinzufügen und Installieren verwenden

Add -SPSolution "<WSP Package file path>" 
e.g.: Add -SPSolution "C:\test.wsp"

Install-SPSolution –Identity "<wsp package name>" –WebApplication "<url of web application>" –GACDeployment 
e.g.: Install-SPSolution –Identity "test.wsp" –WebApplication “http://naveen-pc:2711 “ –GACDeployment

Verwenden Sie zum Entfernen und Deinstallieren

Uninstall-SPSolution –Identity “<wsp package name>” –WebApplication “<url of web application>” 
e.g.: Uninstall-SPSolution –Identity “test.wsp” –WebApplication ”http://naveen-pc:2711/” 

Remove-SPSolution–Identity "<wsp package name>" 
e.g.: Remove-SPSolution–Identity “test.wsp” 

Nach dem Ausführen des Befehls SP-Upgrade funktionieren die Dinge effektiv, wenn Ihr WSP bereits in der SharePoint-Farm vorhanden ist und Ihr neuer WSP fehlerfrei ist. Wenn die erneute Bereitstellung oder Aktualisierung Ihres neuen WSP einen Fehler im Webpart verursacht, muss es ein Problem in Ihrem WSP geben.Da es nur Befehle zum Aktualisieren oder Installieren Ihrer Lösung in SharePoint gibt.

Es ist besser, wenn Sie diese Lösung zuerst zurückziehen und entfernen.Entfernen Sie das Webpart von der Seite, in der dieses Webpart steckt.Fügen Sie dann die Lösung hinzu und stellen Sie sie erneut bereit.Aktivieren Sie die Funktion und fügen Sie dann Webpart zu Ihrer Seite hinzu.Es sollte funktionieren, wenn Ihre Lösung (wsp) in Ordnung ist.Wenn nicht, dann muss es einen Fehler in Ihrem wsp geben.

Sie können Ihr altes WSP erneut bereitstellen.Ich gehe davon aus, dass Sie eine Quellcodeverwaltung wie TFS oder SVN oder andere Dinge verwenden, um die Version Ihrer Lösung zu verwalten.Nehmen Sie also eine alte Version von wsp und versuchen Sie, sie mit demselben Befehl bereitzustellen.Webpart wird gut funktionieren, wenn es vorher gut funktioniert hat!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit sharepoint.stackexchange
scroll top