• 0

Software won't run on Server 2016 - .NET Runtime Error


Question

I have a WD Sentinel DS server. It's an x86 NAS from WD - it comes with Server 2012R2 by default and a few other addons. I'm looking to update it to 2016, but I get an issue with a single addon - unfortunately it's one I would require to work. This addon adds AFP support, which means I can use it for TimeMachine on my OS X clients natively.

Although the addon is WD packaged, it looks like it was originally developed by Extremez-IP - a company which has since been bought out and there's not going to be an update released.

 

I can try to start the service, but a few seconds later it's stopped running and I get a few messages in the event log. Event 1026, .NET Runtime.

  Quote

 

Application: WDAfpSupport.exe

Framework Version: v4.0.30319

Description: The process was terminated due to an unhandled exception.

Exception Info: System.IO.FileNotFoundException

   at WDAfpSupport.WDAfpSupportService.IsEZIPInstalled(System.String ByRef)

   at WDAfpSupport.WDAfpSupportService.MonitorMacAccess()

   at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)

   at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)

   at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)

   at System.Threading.ThreadHelper.ThreadStart()


 

Expand  

And the XML view:

  Quote

- <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event"> 

+ <System> 

<Provider Name=".NET Runtime" /> 

<EventID Qualifiers="0">1026</EventID> 

<Level>2</Level> 

<Task>0</Task> 

<Keywords>0x80000000000000</Keywords> 

<TimeCreated SystemTime="2018-01-14T14:26:25.946371600Z" /> 

<EventRecordID>608</EventRecordID> 

<Channel>Application</Channel> 

<Computer>TESTServer.TEST.local</Computer> 

<Security /> 

</System> 

+ <EventData> 

<Data>Application: WDAfpSupport.exe Framework Version: v4.0.30319 Description: The process was terminated due to an unhandled exception. Exception Info: System.IO.FileNotFoundException at WDAfpSupport.WDAfpSupportService.IsEZIPInstalled(System.String ByRef) at WDAfpSupport.WDAfpSupportService.MonitorMacAccess() at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) at System.Threading.ThreadHelper.ThreadStart()</Data> 

</EventData> 

</Event>

Expand  

Am I right in thinking I'm pretty much SOL here, and this could only be rectified by the original developers? I have tried to install all additional .NET components but I still don't get any luck in my test environment. 

 

Not only has the original developed been removed from the equation, but WD has dropped all support for this unit too. If anyone is particularly interested, I've put a copy of the AFP addon installer here: https://www.dropbox.com/s/cp0qgo6wgpzf6l4/WDAfpSupportSetup.msi?dl=0

7 answers to this question

Recommended Posts

  • 0

Yes - the dropbox link is the original installer msi file provided by WD. I've got the full recovery suite for this unit and that wim file includes all the original installers.

 

Regardless of whether I do a clean install or 2016, or upgrade 2012R2 the same fault occurs with this software.

  • 0

its not looking for an old .net thats not supplied is it?

 

2.5 or equiv, that was a ballache to install on 2k12, suspect much the same on 2k16. from memory MS guidance to install it doesnt work.  Struggling to remember how i managed to force it onto 2k12 though.

  • 0
  On 15/01/2018 at 13:19, Mando said:

its not looking for an old .net thats not supplied is it?

 

2.5 or equiv, that was a ballache to install on 2k12, suspect much the same on 2k16. from memory MS guidance to install it doesnt work.  Struggling to remember how i managed to force it onto 2k12 though.

Expand  

I don't think it is. On the standard 2012R2 (out of the WD factory) only .NET 4.5 is installed and it works as-is. This is the same as 2016 - I've even added the older .NET features using Server Manager on 2016 and it's still a no-go.

 

Is there any sort of debugging software that could work just from the binary (as no source code is available?). The XML suggests there's a file missing "Exception Info: System.IO.FileNotFoundException" but I've no experience at this whatsoever.

  • 0
  On 15/01/2018 at 13:29, Biohead said:

I don't think it is. On the standard 2012R2 (out of the WD factory) only .NET 4.5 is installed and it works as-is. This is the same as 2016 - I've even added the older .NET features using Server Manager on 2016 and it's still a no-go.

 

Is there any sort of debugging software that could work just from the binary (as no source code is available?). The XML suggests there's a file missing "Exception Info: System.IO.FileNotFoundException" but I've no experience at this whatsoever.

Expand  

hmm probs not that then.

 

and TBH no not really, if the vendor doesnt support it due to EOL or compatiblity reasons, id be walking away, i cant use bodges in a production environment sadly.

 

are there positive reasons for migrating from 2k12 r2 to 2016? I cant think of any, but im not on the coal face as it were.

  • 0

This may be a bit advanced but you could try to open the program in ILSpy and look for WDAfpSupport.WDAfpSupportService.IsEZIPInstalled(System.String ByRef) and try to see what it is looking for that is causing a FileNotFoundException.

 

Examples could be a FileInfo object that is initialized and then they call a method on that object without checking whether it exists, causing an unhandled exception. This won't fix your error but what it will do is potentially lead you to what is causing it and potentially, how to fix it.

 

It seems its looking to see if EZ IP is installed, whatever that is. Possibly another component.

  • 0

That's a really useful tool - it's been able to show me a lot more than I was expecting!


Just to try and clear things up, ExtremeZIP software was taken by Western Digital, and packaged up by them to create an OEM version they included with this server. It really does work well for AFP file sharing which is why I'd like to see if this is fixable. 2016 doesn't add that much so happy to stay with 2012R2, but it does have a few more Storage Pool capabilities... plus who doesn't like tinkering?!

 

It results in two services being installed, WDAFPSupport and ExtremeZIP (EZIP). It looks like the WDAFPSupport service is what controls this EZIP service (when to turn it on, what shares it should be accessing etc). If I run that service manually, it has it's own logfiles and there's nothing in them at all which would be unexpected. The EZIP service will stay started once it's manually done - it's the WDAFPSupport service which is the issue. 

 

I've been able to find the two sections in the WDAFPSupport.exe which are shown in the event log by using ILSpy and pasted them below.

 

I've also seen an info entry in the Application Log which I missed first time... although it looks like exception code 0xe0434352 is just the generic .NET fault code and doesn't help much in this case

  Quote

Faulting application name: WDAfpSupport.exe, version: 2.1.0.0, time stamp: 0x5355864e
Faulting module name: KERNELBASE.dll, version: 10.0.14393.321, time stamp: 0x57f4c4f0
Exception code: 0xe0434352
Fault offset: 0x0000000000017788
Faulting process id: 0x7b8
Faulting application start time: 0x01d38e39051c5619
Faulting application path: c:\Program Files\Western Digital\Western Digital AFP Support Service\WDAfpSupport.exe
Faulting module path: C:\WINDOWS\System32\KERNELBASE.dll
Report Id: f589232e-d508-43d7-8bed-a8185e341c5a
Faulting package full name:
Faulting package-relative application ID:

Expand  

 

In the case if the first section, it's referring to a string (A82379D3-E734-47B7-80F9-81A11CDFCD81) and I'm not sure what this relates to. I've tried searching the registry for it in 2012R2 and I can't find it, so I'm not sure where I should be looking - if at all. I'm not really sure where else it could be referring to a file which doesn't exist.

 

WDAfpSupport.WDAfpSupportService.IsEZIPInstalled(System.String ByRef)

private bool IsEZIPInstalled(out string version)
		{
			version = string.Empty;
			if (!string.IsNullOrEmpty("{A82379D3-E734-47B7-80F9-81A11CDFCD81}"))
			{
				try
				{
					foreach (ProductInstallation current in ProductInstallation.GetRelatedProducts("{A82379D3-E734-47B7-80F9-81A11CDFCD81}"))
					{
						if (current != null)
						{
							version = current.get_ProductVersion().ToString();
							break;
						}
					}
				}
				catch (SystemException ex)
				{
					Logger.Info(Logger.EventType.EVENT_AFP, "Exception when checking for installed version of ExtremeZ-IP: {0}", new object[]
					{
						ex.ToString()
					});
					version = string.Empty;
				}
			}
			return !string.IsNullOrEmpty(version);
		}

WDAfpSupport.WDAfpSupportService.MonitorMacAccess()

// WDAfpSupport.WDAfpSupportService
private void MonitorMacAccess()
{
	this.alertManager = AlertManager.GetInstance();
	this.GetIpSubnet();
	Thread.Sleep(10000);
	this.serialNumber = this.GetSerialNumber();
	this.modelDisplayName = this.GetModelDisplayName();
	string baseDirectory = AppDomain.CurrentDomain.BaseDirectory;
	string fileName = baseDirectory + "ExtremeZ-IP Installer.exe";
	FileVersionInfo versionInfo = FileVersionInfo.GetVersionInfo(fileName);
	this.productVersion = versionInfo.ProductVersion;
	Logger.Info(Logger.EventType.EVENT_AFP, "Latest ExtremeZ-IP version is {0}", new object[]
	{
		this.productVersion
	});
	bool flag = this.IsEZIPInstalled(out this.installedVersion);
	if (flag)
	{
		this.alertManager.Clear("WDAfpSupportDAFPFailedActivation");
		this.alertManager.Clear("WDAfpSupportDAFPFailedInstallation");
		if (this.installedVersion.CompareTo(this.productVersion) < 0)
		{
			Logger.Info(Logger.EventType.EVENT_AFP, "ExtremeZ-IP version {0} has been previously installed.  Updating to version {1}.", new object[]
			{
				this.installedVersion,
				this.productVersion
			});
			flag = this.InstallEZIP();
		}
		else
		{
			Logger.Info(Logger.EventType.EVENT_AFP, "ExtremeZ-IP version {0} has been previously installed.", new object[]
			{
				this.installedVersion
			});
		}
	}
	if (!flag)
	{
		this.CreateDevicesManager();
		while (!this.activationRequestAccepted)
		{
			WDAfpSupportService.monitorMacAccessThreadEvent.WaitOne();
			bool flag2 = false;
			foreach (DeviceInfo current in WDAfpSupportService.devices)
			{
				OperatingSystemProperty operatingSystem = current.get_OperatingSystem();
				if (operatingSystem != null)
				{
					string text = operatingSystem.get_OSName().ToUpper();
					if (text.Contains("MAC OS X"))
					{
						Logger.Info(Logger.EventType.EVENT_AFP, "Device Name = {0}, Description = {1}, Id = {2}, OS Name = {3}, OS = {4}", new object[]
						{
							current.get_DeviceName(),
							current.get_Description(),
							current.get_DeviceId(),
							operatingSystem.get_OSName(),
							operatingSystem.ToString()
						});
						Logger.Info(Logger.EventType.EVENT_AFP, "A Mac client has been detected", new object[0]);
						flag2 = true;
						break;
					}
				}
			}
			if (flag2)
			{
				this.activationRequestAccepted = this.SendActivationRequest();
			}
		}
		this.RemoveDevicesManager();
		flag = this.InstallEZIP();
	}
	if (flag)
	{
		bool flag3 = this.StartEZIPService();
		if (flag3)
		{
			if (!this.isTimeMachineVolumeAlreadyCreated())
			{
				this.CreateTimeMachineVolume();
				return;
			}
		}
		else
		{
			Logger.Error(Logger.EventType.EVENT_AFP, "Unable to start AFP service.  Time Machine share \"{0}\" can not be created or accessed.", new object[]
			{
				"Time Machine"
			});
			this.alertManager.Raise("WDAfpSupportDAFPFailedTimeMachineCreation", Alerts.WDAFPFailedTimeMachineCreationDescription);
		}
	}
}

 

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • Burrrrn. Bought COD WWII last month when it was on sale for PC. Oh well. Excellent game tho, and the PC version plays/looks amazing (and has it's own PC achievements). ...wondering if this is a lesson on waiting on sales. ...also hoping Rise of the Tomb Raider has it's own PC Achievements
    • Google Chrome 137.0.7151.120 (offline installer) by Razvan Serea The web browser is arguably the most important piece of software on your computer. You spend much of your time online inside a browser: when you search, chat, email, shop, bank, read the news, and watch videos online, you often do all this using a browser. Google Chrome is a browser that combines a minimal design with sophisticated technology to make the web faster, safer, and easier. Use one box for everything--type in the address bar and get suggestions for both search and Web pages. Thumbnails of your top sites let you access your favorite pages instantly with lightning speed from any new tab. Desktop shortcuts allow you to launch your favorite Web apps straight from your desktop. Chrome has many useful features built in, including automatic full-page translation and access to thousands of apps, extensions, and themes from the Chrome Web Store. Google Chrome is one of the best solutions for Internet browsing giving you high level of security, speed and great features. Important to know! The offline installer links do not include the automatic update feature. Google Chrome 137.0.7151.120 changelog: [$7000][420697404] High CVE-2025-6191: Integer overflow in V8. Reported by Shaheen Fazim on 2025-05-27 [$4000][421471016] High CVE-2025-6192: Use after free in Profiler. Reported by Chaoyuan Peng (@ret2happy) on 2025-05-31 [425443272] Various fixes from internal audits, fuzzing and other initiatives Download web installer: Google Chrome Web 32-bit | Google Chrome 64-bit | Freeware Download: Google Chrome Offline Installer 64-bit | 128.0 MB Download: Google Chrome Offline Installer 32-bit | 115.0 MB Download page: Google Chrome Portable Download: Google Chrome MSI Installers for Windows (automatic update) View: Chrome Website | Release Notes Get alerted to all of our Software updates on Twitter at @NeowinSoftware
    • -Drop the art style, it's cool but doesn't fit the franchise at all. -Make it a gritty single player game, like Halo -Include deathmatch and all that stuff, extraction can be a separate mode If they don't do that, it's dead on arrival IMO.
  • Recent Achievements

    • One Month Later
      Custom Greek Shirts earned a badge
      One Month Later
    • Week One Done
      Custom Greek Shirts earned a badge
      Week One Done
    • One Year In
      Custom Greek Shirts earned a badge
      One Year In
    • Week One Done
      topantidetectbrowser earned a badge
      Week One Done
    • Explorer
      Jdoe25 went up a rank
      Explorer
  • Popular Contributors

    1. 1
      +primortal
      672
    2. 2
      ATLien_0
      281
    3. 3
      Michael Scrip
      223
    4. 4
      +FloatingFatMan
      190
    5. 5
      Steven P.
      146
  • Tell a friend

    Love Neowin? Tell a friend!