Installation
A new DS Server installation fails in a few typical ways: the process ends right after dotnet TXTextControl.DocumentServices.dll, it listens on another port than expected, or it runs but refuses every document. Each problem below starts from what you see on the console, in the log file or in a response, and ends with the change that fixes it. The messages were recorded with DS Server 5.0.2 (Core) started with dotnet.
Find Out Whether the Server Runs
The console tells you little. DS Server writes only two lines to it at startup, both about plugins:
Loading plugins from '/opt/dsserver/Plugins'...
No plugins found in the plugin directory. No plugins will be loaded.
Everything else, including the address it listens on, goes only to the log file. Unhandled errors at startup appear on the console and in the log file.
Open the folder logs and the file of the current day, named log_YYYYMMDD.log, for example log_20260929.log.
Look for the lines of a successful start:
[2026-09-29 07:39:56] [Information] Now listening on: http://[::]:5000 [2026-09-29 07:39:56] [Information] Application started. Press Ctrl+C to shut down.If there is no logs folder in the installation folder, look in the folder you started DS Server from. The log folder
./logsin appsettings.json is relative to the working directory of the process, while Admin.db and hostsettings.json stay in the installation folder.
To write the log to a fixed folder, set the environment variable Logging__DSServerFile__Options__FolderPath to an absolute path before you start the server. Configuration describes the settings of appsettings.json.
The Server Ends at Startup With an HTTPS Error
dotnet TXTextControl.DocumentServices.dll ends immediately with:
Unhandled exception. System.InvalidOperationException: Unable to configure HTTPS endpoint. No server certificate was specified, and the default developer certificate could not be found or is out of date.
To generate a developer certificate run 'dotnet dev-certs https'. To trust the certificate (Windows and macOS only) run 'dotnet dev-certs https --trust'.
For more information on configuring HTTPS see https://go.microsoft.com/fwlink/?linkid=848054.
The hostsettings.json of the archive makes DS Server listen on HTTPS as well as HTTP:
{
"urls": "http://*:5000;https://*:5001"
}
HTTPS needs a certificate. On a machine with the .NET SDK, the ASP.NET Core developer certificate can fill in, but a server with only the runtime has none, and the process ends before it serves anything.
To run on HTTP only, for example behind a reverse proxy or for a first test, remove the HTTPS address from hostsettings.json:
{ "urls": "http://*:5000" }To serve HTTPS, configure a certificate for Kestrel instead, as HTTPS describes. The blog article DS Server: Enabling HTTPS for TX Text Control Document Services Using Kestrel configures a PFX certificate in appsettings.json.
Start DS Server again and check the
Now listening onlines in the log.
The Server Ends Because the Port Is in Use
The process ends at startup with:
Unhandled exception. System.IO.IOException: Failed to bind to address http://[::]:5000: address already in use.
---> Microsoft.AspNetCore.Connections.AddressInUseException: Address already in use
Another process, for example a second DS Server instance, already listens on the port.
- Find the process that uses the port, for example with
sudo ss -ltnpon Linux, and stop it if it's an old instance. - Or give this instance another port in hostsettings.json, as the next section shows.
The Server Doesn't Listen on the Port You Set
You set ASPNETCORE_URLS, DOTNET_URLS or ASPNETCORE_HTTP_PORTS, but the log still reports Now listening on: http://[::]:5000. For ASPNETCORE_HTTP_PORTS, it also warns:
[Warning] Overriding HTTP_PORTS '5059' and HTTPS_PORTS ''. Binding to values defined by URLS instead 'http://*:5000'.
The urls key of hostsettings.json takes precedence over these environment variables. Use one of the ways DS Server does accept:
Change
urlsin hostsettings.json, for example to"http://*:8080".Or pass the address on the command line:
dotnet TXTextControl.DocumentServices.dll http://localhost:8080Or define a Kestrel endpoint, for example with the environment variable
Kestrel__Endpoints__Http__Url=http://localhost:8080. The log then reports that it overrides the addresses of hostsettings.json.
.NET Reports a Missing Framework
The dotnet command stops before DS Server starts:
You must install or update .NET to run this application.
App: /opt/dsserver/TXTextControl.DocumentServices.dll
Architecture: x64
Framework: 'Microsoft.AspNetCore.App', version '10.0.0' (x64)
DS Server 5.0 is built with .NET 10. Its TXTextControl.DocumentServices.runtimeconfig.json requires the frameworks Microsoft.NETCore.App and Microsoft.AspNetCore.App in version 10.0.0 or later. A machine with only the .NET runtime, without ASP.NET Core, or with the .NET 8 runtimes that DS Server 4.x used, can't start it.
- Install the .NET 10 runtimes that the Requirements list for your platform and build: the ASP.NET Core Runtime 10.0 for Core, and for Classic also the Windows Desktop Runtimes.
- Run
dotnet --list-runtimesand check thatMicrosoft.AspNetCore.App 10.0is in the list.
Every Document Request Says DS Server Is Not Registered
The server runs, the admin portal opens, but every endpoint of the DocumentProcessing Web API answers with status 400 and this body:
"DS Server is not registered."
A new installation isn't licensed. Until it's registered, DS Server refuses all document processing: it has no trial mode and produces no watermarked output. The admin portal shows UNREGISTERED under License User Name on the Licensing page. The Document Editor and the Document Viewer show the same message; see Document Editor and Viewer.
- Open the admin portal and select Licensing in the menu.
- Enter your serial number and register online or manually, as Licensing describes.
- To evaluate DS Server without a serial number, use a Trial Token with the Text Control trial server instead.
The license check comes before the check of the parameters, so a request with a wrong returnFormat also returns this message on an unregistered server.
The Serial Number Is Rejected
Registering shows, under the Serial field or as the response of a licensing endpoint:
Invalid serial string. A serial string consists of two upper case letters, followed by a dash and ten digits (e. g. XX-0000000000).
DS Server checks the form of the serial number before it contacts Text Control.
- Copy the serial number from your Text Control account or the order confirmation again, without spaces before or after it.
- Check that the two letters are upper case.
The Browser Asks for a User Name and Password
Opening http://<server>:5000/ shows the sign-in dialog of the browser instead of a page, or http://<server>:5000/admin returns 404.
The admin portal is at the root address of DS Server and is protected with HTTP Basic authentication: the dialog is the browser's own, and there is no sign-in page. After a new installation, the user name is admin and the password admin.
- Open the root address,
http://<server>:5000/, not /admin. - Sign in with the admin credentials, and change the default password as Default Admin Password describes.
If the password isn't accepted, see The Admin Password Is Lost.