Posts

The HTML5 Input=Date browser date picker inconsistencies between browser

Image
This week we've been looking at replacing some of the older web controls we have in the product including a date picker control that's not compatible with mobile devices. Our current control however does render well on desktops and displays a nice calendar. We decided to replace the control with the HTML5 date picker control which is very problematic. I've made some notes on what we found. iOS Renders as a fake dropdown list which when clicked displays a popup calendar ISSUE: Field renders using the operating systems short date format, you cannot change the format - for example to "1 January 2022". BUG: If the control is set to readonly the calendar is still shown when the "dropdown" is clicked The reset button resets to whatever the "value" was set to when the control was rendered which is not what the user would expect. ISSUE: No clear button (unless the control was rendered with a value of blank in which case reset acts as a clear) ISSUE:...

Custom actions do not execute on the ExitDialog dialog in AdvancedInstaller after .NET Framework prerequisite installation and reboot

Image
When using AdvancedInstaller you may find that custom actions do not execute on the ExitDialog dialog (for example when you click a butto) after .NET Framework prerequisite installation and reboot. The AdvancedInstaller installation will correctly continue after the .NET Framework installation reboot however the buttons on the exit page don't work. For an Open URL action you can simply tick the "Wait for custom action to finish before proceeding" checkbox. The URL will actually open and the install continue as normal. For an actual .exe file you need to find a way to create a custom action that executes the application. We found there were several ways to do this however each had issues Using VBScript to execute a file caused the file to execute behind the installer window Using an inline PowerShell script executes the application correctly in front of the installer window, however on some test machines this look several seconds before the application started You can also...

Using the .NET WCF BasicHttpBinding to access a web service using both Client Certificates AND Windows Authentication.

If you're using the WCF BasicHttpBinding to access a web service you may wish to connect using Windows Authentication over HTTPS but also present a client certificate to add an extra layer of security (two factor authentication). The problem is whilst you can add a client certificate it is ignored because settings the ClientCredentialType to Windows means that only Windows authentication is used. BasicHttpBinding basicBinding = new BasicHttpBinding(BasicHttpSecurityMode.Transport); basicBinding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Windows; SchedulerAccessWebServiceSoapClient server = new SchedulerAccessWebServiceSoapClient(binding, remoteAddress); server.ClientCredentials.ClientCertificate.SetCertificate(StoreLocation.LocalMachine, StoreName.My, X509FindType.FindByThumbprint, " be4bca8c388af02ee1c50c3f5f74d6a34fe97daf " ); When you try and access the web service when Require Client Certificates is enabled you see an error similar to this. S...

VMware workstation listening on port 443

Image
When using VMware workstation you may find that VMware workstation is listening on port 443. Running netstat -anb shows the following TCP    0.0.0.0:443            0.0.0.0:0              LISTENING [vmware-hostd.exe] To change this in VMware workstation go to Edit > Preferences > Shared VMs (deprecated) and you can stop sharing here, or disable the port.

Determine which process is using a specific port using PowerShell.

Image
If you find that a process is using a TCP port and you want to know which process is using that port it's easy with PowerShell using the Get-NetTCPConnection and Get-Process cmdlets. # Determine which process is using port 443 $owningProcess = (Get-NetTCPConnection -State Listen -LocalPort 443|SELECT OwningProcess)[0]; $processName = Get-Process -Id $owningProcess.OwningProcess|SELECT ProcessName; Write-Host "Port 443: $($processName.ProcessName)";

The Add Service Reference context menu is missing from Visual Studio and refreshing a service reference displays the error "The current project does not support service references. To enable Windows Communication Foundation support, change the target version of the Microsoft .NET Framework"

Image
 In Visual Studio you notice that the "Add Service Reference" context menu is missing. Refreshing an existing service reference shows the following error "The current project does not support service references. To enable Windows Communication Foundation support, change the target version of the Microsoft .NET  Framework" The solution to this was due to the solution .sln file. Rename the solution file, create a new blank solution and re-add the project. Rebuild and then the system works.

Simple Network Management Protocol (SNMP) is missing from Windows 10 Windows Features in Control Panel

Image
You may find that Simple Network Management Protocol (SNMP) is missing from Windows 10 Windows Features in Control Panel. This is a deprecated feature now however you may still have need of it.  To install this in current versions of Windows 10 goto the modern Settings UI and Add an optional feature Click Add a feature and search for SNMP