BioClient.Web installation
Deployment package
BioClient.Web is deployed as
- Nuget packages, containing the BioClient.Web Javascript plugin
- ZIP file containing ASP.NET sample pages, including the BioClient.Web Javascript plugin, and additional sample implementations
- ZIP file containing the BioClient.Web service
- ZIP file containing the BioClient.Web server (used during development)
BioClient.Web service installation
The BioClient.Web service implements the client layer of BioClient.Web as a Windows service.
To install the BioClient.Web service
- Unzip the BioClient.Web service package to a location of your choice.
- Open a command prompt as administrator.
- Install the windows service. Note that the space after parameters like
start=is by design.
sc create BioClient.Web.Service start= demand error= normal binpath= your-path-to\BioClient.Web.Service.exe displayname= "BioClient.Web Service (x64)" obj= "NT Authority\NetworkService" - Allow the service access to the BioClient.Web URL and port
netsh http add urlacl url=http://+:8114/ user="NT AUTHORITY\NetworkService" netsh http add urlacl url=https://+:44314/ user="NT AUTHORITY\NetworkService" - Start the service
sc start BioClient.Web.Service
BioClient.Web service configuration
To configure, edit appsettings.json of the service
DefaultConfigFiledefines the location of the default BioClient configuration file.
BioClient.Web server installation
The BioClient.Web server implements the client layer of BioClient.Web as a UI application, and is conveniently used while developing web based, biometrically enabled applications. It allows the developer more control over biometric configuration, and provides visibility to biometric operations and troubleshooting assistance.
To install the BioClient.Web server
- Unzip the BioClient.Web server package to a location of your choice
- Execute
BioClient.Web.Server.exe
Please note that BioClient.Web server and service share the same configuration, implement the same functionality, and they are attempting to listen on the same WebSocket address. Therefore only on of the two may be running on one workstation at any point in time.
BioClient.Web server configuration
To configure, edit appsettings.json of the server
ConfigFolderdefines the relative or absolute path where BioClient configuration files are located. You can provide several configuration files.DefaultConfigFiledefines the default configuration file
BioClient.Web server usage
- Execute
BioClient.Web.Server.exe -window - To select a configuration file, to to the Configuration tab, select a file, and click
Initialise - Alternatively, to use the default configuration file, click the menu item Server > Initialise
- Review loaded adapters on the Configuration tab
- To start the server, click the menu item Server > Initialise
- Start the ASP.NET sample project, or your own biometrically enabled application, and send biometric commands
BioClient.Web sample application
The BioClient.Web package contains
- The BioClient.Web Javascript plugin in
prog\BioClient\BioClient\BioClient.Web\scripts - A sample ASP.NET Razor project in
prog\BioClient - Sample BioClient configuration files in
ProgramData\Amaqele\BioClient.Web
To install BioClient.Web
- Unzip BioClient.Web to a location of your choice
- Copy the content of
ProgramData\Amaqele\BioClient.WebtoC:\ProgramData\Amaqele\BioClient.Web - Open
BioClient.Std.Samples.slnin Visual Studio
Trouble shooting
Service not listening
In the case the server or service fails listening on the WebSocket address, determine port use
netstat -aon | findstr "8114"
Service not responding
In case the server does not respond to an HTTPS request, and you find the following message in the logs, there was no TLS certificate configured, or the configured certificate could not be found.
WebServer.GetStream|Connection not secure, no certificate
Check your BioClient.config configuration file for the certificate settings,
and verify that the certificate exists and its private key is accessible to the service account which executes the BioClient.Web service.
Also note that the service may not have access to the CurrentUser location, a LocalMachine location will generally be preferred.
<Certificate value="store=my|location=LocalMachine|serial=4f2611a8c141a68b457ee04a6d93a583" />
If certificate retrieval is successful, the logs will reflect this.
CertificateBase.ObtainCertificateSafe|Opening 'store=my|location=LocalMachine|serial=4f2611a8c141a68b457ee04a6d93a583'...
CertificateBase.ObtainCertificateSafe|Opening 'my' for 'LocalMachine'...
CertificateBase.ObtainCertificateSafe|Retrieving 4f2611a8c141a68b457ee04a6d93a583
CertificateBase.ObtainCertificateSafe|Found 1 certificate(s)
CertificateBase.ObtainCertificateSafe|Found '4F2611A8C141A68B457EE04A6D93A583'
Unauthorised origin
If the service responds with a message containing unauthorised origin,
verify that the origin of your calling website is included in the list of permitted origins.
Command 'clear-current' with unauthorised origin 'https://localhost:44315'
Check your BioClient.config configuration file for the permitted origins.
<PermittedOrigins value="http://localhost:4036|https://localhost:44315" />
Sensor controller not found
If the service responds with a message containing Default controller ... not found,
check your log files for further messages.
Capture failed: 'Default controller for 'Sensor' not found.'
A log messages containing `` indicates a deployment issue where a module is not found. Liase with your system administrator to determine the possible cause of this deployment issue.
Unable to load DLL 'LumiVCOM64D.dll': The specified module could not be found.
Response timeout
If the service does not respond all and the sent request times out,
check your log files for further messages. It could be that the send or receive size limit has been exceeded.
As first step to verify the cause, set the error behaviour to Report, so that the service responds and reports an error.
<ErrorBehaviour value="Report" />
Once you have confirmed that a size limit has been exceeded, set the size limits accordingly. Size limits are set in kB.
<InboundSizeLimit value="20480" />
<OutboundSizeLimit value="40960" />