Startseite > Techblog > Microsoft Sharepoint > Performance-Optimierung in SharePoint durch Entfernen von...
che

Problem

 

Gelegentlich erscheint beim Verwenden von SharePoint-Websites im Internet Explorer eine gelbe Warnleiste mit der Meldung, dass die Website das Add-On “Name ActiveX Control” ausführen möchte.

 

Ursache

 

Dieses Problem tritt auf, wenn man mit dem Internet Explorer 7 eine SharePoint-Website aufruft, die nicht als “Vertrauenswürdige Site” eingetragen ist, und diese versucht, das ActiveX Control “NameCtrl” zu laden.

Öffnet man eine Intranet-Website, so erscheint diese Meldung nicht, da Intranet-Websites automatisch vom Internet Explorer als vertrauenswürdig eingestuft werden und dieser dann das ActiveX Control ohne Nachfrage ausführt.

Dieses ActiveX Control wird verwendet, um Anwesenheits-Informationen zu Benutzern anzuzeigen, dazu integriert es sich mit Outlook und Communicator. (Mehr Informationen dazu siehe: ActiveX und Browserkompatibilität in MOSS 2007 – Artikel 1/2 )

Dies mag im Intranet ein sinnvolles Feature sein, hat aber auf einer Website nichts zu suchen.

Zudem denkt man beim Name “name.dll” zuerst an einen Trojaner o.ä., der Bezug zu SharePoint ist für den normalen Anwender nicht herstellbar.

 

Lösung

 

Der von Microsoft im KB-Artikel 931509 vorgeschlagene Lösungsweg funktioniert leider nicht zuverlässig, der er die Lade-Reihenfolge der verschiedenen JavaScript-Dateien nicht berücksichtigt.

Deshalb ist folgender Ansatz besser:

Suchen Sie in Ihrer MasterPage im Abschnitt <head> nach dem PlaceHolderAdditionalPageHead und ändern Sie ihn wie folgt ab:

<head runat="server">
    <asp:ContentPlaceHolder id="PlaceHolderAdditionalPageHead" runat="server"/>
    <script type="text/javascript" src="/_catalogs/masterpage/custom_activex_override.js"></script>
</head>

Legen Sie zusätzlich im MasterPage-Katalog die entsprechende Datei “custom_activex_override.js” ab.

Diese sollte folgenden Inhalt haben:

	function ProcessDefaultOnLoad(onLoadFunctionNames)
	{
		//** Uncomment this to see when this runs
		//alert('Fixing the Issue');

		ProcessPNGImages();
		UpdateAccessibilityUI();

		//** We comment out the offending ootb function
		//** and leave the rest of the functions as they were
		//ProcessImn();
		for (var i=0; i < onLoadFunctionNames.length; i++)
		{
			var expr="if(typeof("+onLoadFunctionNames[i]+")=='function'){"+onLoadFunctionNames[i]+"();}";
			eval(expr);
		}
		if (typeof(_spUseDefaultFocus)!="undefined")
			DefaultFocus();
	}

Dadurch wird die mitgelieferte Funktion “ProcessDefaultOnLoad” überschrieben, welche die Fuktion “ProcessImn()” aufruft, die sonst das NameCtrl ActiveX-Control aufrufen würde.

 

Nebeneffekt: Performance-Steigerung

 

Da nun das unnötige ActiveX-Control nicht mehr geladen wird, kann man je nach Ausstattung des Client-Systems Geschwindigkeitssteigerungen von bis zu mehreren Sekunden beobachten, was den erstmaligen Seitenaufruf angeht. (Da muss sonst ja immer erst das Control initialisiert werden…)

Quellen: http://support.microsoft.com/kb/931509/en-us/, http://www.sharepointblogs.com/mossman/archive/2007/09/13/fixing-the-name-dll-activex-problem-the-mossman-way.aspx, http://www.katriendg.com/aboutdotnet/2007-9-moss-issue-activex-ie7-931509.aspx

Kommentar Feed Trackback URL
Eine Antwort zu:
“Performance-Optimierung in SharePoint durch Entfernen von ActiveX Control (NAME.DLL)”
  1. Pascal sagt:

    This is not working for me. I made the workaround described in http://support.microsoft.com/kb/931509/en-us no success.
    So I tried your solution, but it isn’t working neither.
    Here is my head part of my master. Are there any errors?
    <head runat=”server”>
    <meta name=”GENERATOR” content=”Microsoft SharePoint”>
    <meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″>
    <meta http-equiv=”Expires” content=”0″>
    <SharePoint:RobotsMetaTag runat=”server”/>
    <title id=”onetidTitle”><asp:ContentPlaceHolder id=”PlaceHolderPageTitle” runat=”server”/> </title>
    <Sharepoint:CssLink runat=”server”/>
    <!–Styles used for positioning, font and spacing definitions–>
    <SharePoint:CssRegistration name=”<% $SPUrl:~SiteCollection/Style Library/xx/xx.css%>” runat=”server”/>
    <SharePoint:CssRegistration name=”<% $SPUrl:~sitecollection/Style Library/xx/xxControls.css %>” runat=”server”/>
    <SharePoint:CssRegistration name=”<% $SPUrl:~SiteCollection/Style Library/xx/xx_core.css%>” runat=”server”/>
    <SharePoint:ScriptLink language=”javascript” name=”InitNoPresence.js” runat=”server”/>
    <!–Placeholder for additional overrides–>
    <asp:ContentPlaceHolder id=”PlaceHolderAdditionalPageHead” runat=”server” >
    <script type=”text/javascript” src=”/_catalogs/masterpage/custom_activex_override.js”></script>
    </asp:ContentPlaceHolder>
    </head>

    Regards, Pascal

Hinterlassen Sie einen Kommentar

Tag Cloud

Unsere Themen

Kommentare

  • Christian Heindel: Hallo Volti, die Option “Verbindung mit ‘Dokumentbibliothek̵ 7; herstellen”...
  • volti: Hi, ich hab das beschriebene Probleme mit Outlook 2010, dort finde ich die Option Aktionen >...
  • Michael Wittwer: Hallo Guter Beitrag, bin seit kurzem auch mit Balsamiq am arbeiten und die Effizienz ist einfach...
  • Frank: Danke, tut und ist im Vergleich zur Atlassian Lösung abwärtskompatibel bis Confluence 2.10.
  • Ghost@: Danke für die schnelle Antwort Martin! Das ist natürlich ärgerlich, dass der Datentyp nicht unterstützt ist....

Twitter