문제

All of a sudden, stsadm has stopped working, crashing on all commands it is run with (even -help!)

e.g.

> stsadm.exe -help
Unhandled Exception: System.ArgumentNullException: Value cannot be null.
Parameter name: path
   at System.IO.DirectoryInfo..ctor(String path)
   at Microsoft.SharePoint.StsAdmin.SPStsAdmin.EnsureExtendedOperationMap()
   at Microsoft.SharePoint.StsAdmin.SPStsAdmin.EnsureFullOperationMap()
   at Microsoft.SharePoint.StsAdmin.SPStsAdmin.LookupOperationName(String strOperation)
   at Microsoft.SharePoint.StsAdmin.SPStsAdmin.Main(String[] args)

I'm baffled as to why. The only significant thing to change on the server between yesterday and today was the installation of the Citrix Web Interface for SharePoint webparts.

UPDATE: I also receive the following error when starting Central Administration from the Start Menu (Start -> Microsoft Office Server -> SharePoint 3.0 Central Administration)

A failure occurred when accessing the HKEY_LOCAL_MACHINE\Software\Microsoft\Shared Tools\Web Server Extensions\12.0\WSS registry key. Repair this product by selecting it from the Add/Remove Programs menu.

If I access Central Administration via a browser and typing in the URL (e.g. http://intranet:8080), it works fine.

MORE UPDATE: I dug into stsadm a bit by disassembling with .NET Reflector. Turns out the line it is bailing on is:

FileInfo[] files = new DirectoryInfo(SPUtility.GetGenericSetupPath("config")).GetFiles("stsadmcommands.*.xml");

in the EnsureExtendedOperationMap() method.

The reason being, I believe, because SPUtility.GetGenericSetupPath("config") is returning null. I set up a test console app and sure enough, SPUtility.GetGenericSetupPath("config") returns null. So something is obviously severely hosed somewhere.

I noticed when running the test console app that I get the following output:

A first chance exception of type 'System.DllNotFoundException' occurred in Microsoft.SharePoint.dll

which doesn't sound good. So I ask Visual Studio to break on all exceptions, even handled ones, and the exception is as follows:

System.DllNotFoundException: Unable to load DLL 'onetnative.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)

Note: I've started a separate question regarding this onetnative.dll problem...

도움이 되었습니까?

해결책

As far as I can trace it back, this was caused by an installation of the wrong version of Microsoft J#.

J# is a pre-requisite of the Citrix Web Interface for SharePoint webparts. I installed the 32bit version mistakenly, then uninstalled and installed the 64bit version. I have a hunch (based on a good bit of testing, but not 100% verified) that this caused .NET/CLR applications to start looking in the 32bit node of the registry rather than 64bit.

다른 팁

Has UAC been enabled and you are not running your command prompt as an Administrator perhaps?

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