• 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

    • TP-Link Tri-Band AXE5400 Wi-Fi 6E Gaming Router Archer GXE75 is just $135 by Sayan Sen If you’re juggling gaming consoles, 4K streams and a growing roster of smart devices, the TP-Link Archer GXE75 Tri-Band AXE5400 Wi-Fi 6E Gaming Router is a good option to look at right now, considering the device is currently on sale at just $135 (purchase link under the specs table below). The Archer GXE75 promises up to 5.4 Gbps of throughput across three bands: 574 Mbps on 2.4 GHz, 2402 Mbps on 5 GHz and 2402 Mbps on 6 GHz (HE160 channels enabled). A 2.5 Gbps WAN/LAN port pairs with three 1 Gbps LAN ports and a USB 3.0 port for fast file sharing or printer access (purchase link down below). The quad-core CPU and 512 MB of RAM should help to handle multiple streams without bogging down, while MU-MIMO, OFDMA and 1024-QAM improve efficiency when several devices connect simultaneously. The router’s built-in Game Accelerator engine is said to automatically prioritize gaming packets (both wired and wireless), and TP-Link’s GPN (Gamers Private Network) acceleration can reduce packet loss for supported titles. HomeShield security brings firewall protection, device quarantining and parental controls. The technical specifications of the router are given below: Specification Details Wireless Standards IEEE 802.11ax 6 GHz; IEEE 802.11ax/ac/n/a 5 GHz; IEEE 802.11ax/n/g/b 2.4 GHz Wi-Fi Speeds 6 GHz: 2402 Mbps (802.11ax); 5 GHz: 2402 Mbps (802.11ax); 2.4 GHz: 574 Mbps (802.11ax) Spatial Streams 6 streams (tri-band OFDMA/MU-MIMO) Processor 1.7 GHz 64-bit Quad-Core CPU Memory 512 MB high-speed RAM Ethernet Ports 1× 2.5 Gbps WAN/LAN; 1× 1 Gbps WAN/LAN; 3× 1 Gbps LAN USB 1× USB 3.0 SuperSpeed port (up to 10× faster than USB 2.0) Antennas 4× high-performance external antennas with Beamforming Buttons Power On/Off; Reset; WPS/Wi-Fi; LED On/Off Working Modes Router Mode; Access Point Mode Security WPA, WPA2, WPA3, WPA/WPA2-Enterprise; SPI firewall; Access Control; IP/MAC binding; Application-layer gateway; HomeShield security suite VPN OpenVPN, PPTP, L2TP (server & client); WireGuard (server & client) Software & Services IPv4/IPv6; TP-Link HomeShield; EasyMesh; Parental controls; QoS by device; WAN types (Dynamic IP, Static IP, PPPoE, PPTP, L2TP); DDNS (TP-Link, NO-IP, DynDNS); auto firmware updates Gaming Features Game QoS boost; gaming-port priority; Gamers Private Network acceleration; game-port forwarding; real-time game panel with stats & RGB control Operating Environment 0 °C – 40 °C; 10 %– 90 % non-condensing humidity Get the TP-Link Tri-Band AXE5400 Wi-Fi 6E Gaming Router Archer GXE75 at the link below: TP-Link Tri-Band AXE5400 Wi-Fi 6E Gaming Router Archer GXE75 | EasyMesh, HomeShield: $159.99 + $25 off with coupon => $134.99 (Sold and Shipped by Amazon US This Amazon deal is US-specific and not available in other regions unless specified. If you don't like it or want to look at more options, check out the Amazon US deals page here. Get Prime (SNAP), Prime Video, Audible Plus or Kindle / Music Unlimited. Free for 30 days. As an Amazon Associate, we earn from qualifying purchases.
    • Oh no... here we go again. Tha same sh*t that happaned to Mail & Calendar...
    • I too have worked with pro gear for decades and so I found the interface to be unintuitive from both the pro and casual side (a rare "accomplishment" by what are obviously otherwise skilled coders, hehe). I eventually got it to work, thanks for offering, but I found other compatibility issues with my own use case, so I just dropped it entirely. Right now, I just use an analog line out/line in approach which works as expected across all usage scenarios. With both machines on the same power block/outlet, I'm not getting any analog hum or hiss. My next step will be to try the updated Multiplicity 4 when a bug, addressing this very issue unfortunately, is resolved. Knowing Stardock, that could be tomorrow or five years from now, so I check back every few months to see it it's fixed and I want to upgrade. Again, thanks for offering to help.
    • We recognize that performance can use some improvements, and we continue to work on improving it. However, it's worth noting that massive performance improvements don't happen overnight, they take a lot of work and effort, and in most cases, the improvements are more noticeable when you compare across several updates. That said, Files is open-source and everyone is invited to help with these efforts 🙂
    • A lot of effort has gone into improving stability and Files Preview now has a 99% crash free rate. These improvements will make their way to Files Stable when v4 is released later this year. If you're still experiencing issues, please report them on GitHub or Discord so we can track them properly.
  • Recent Achievements

    • Rookie
      Snake Doc went up a rank
      Rookie
    • First Post
      nobody9 earned a badge
      First Post
    • One Month Later
      Ricky Chan earned a badge
      One Month Later
    • First Post
      leoniDAM earned a badge
      First Post
    • Reacting Well
      Ian_ earned a badge
      Reacting Well
  • Popular Contributors

    1. 1
      +primortal
      495
    2. 2
      Michael Scrip
      203
    3. 3
      ATLien_0
      197
    4. 4
      Xenon
      137
    5. 5
      +FloatingFatMan
      115
  • Tell a friend

    Love Neowin? Tell a friend!