If you use a network printer, it could be done like this:
File.WriteAllBytes(fileName, new byte[]{ 27, 112, 0, 25, 250 });
File.Copy(fileName, networkPrinterPath);
Note that the byte codes are only an example, you have to use specific codes for your cash drawer.
If you can't use a printer I suggest writing a
SignalR client desktop application that will receive a SignalR message from the server and then use the client's hardware directy.