0

We are writing .NET application for using QuickFix 5.0.SP2.

There are 2 Nuget packages available: QuickFix.Net.NETCore.FIX50SP2 and QuickFIXn.FIX5.0SP2

When using QuickFIXn.FIX5.0SP2 - the initiator works fine on a developer machine, on the test machine but fails to connect on the production machine with DLLNotFoundException "Unable to load 'rasapi32.dll'", despite rasapi32.dll does exists on the machine.

When using QuickFix.Net.NETCore.FIX50SP2 - the initiator loads and connects on all machines, but cannot accept any message except admin messages. Any App messages force it to logout with 'Unsupported BeginString' message.

Here is an example message I try to send and receive (QuoteRequest)

8=FIXT.1.1|9=0332|35=R|49=ABC|56=DEF|34=172|52=20201103-13:06:01.420|1180=xxxxxx|1181=6183|60=20201103-13:06:00.985483|131=1604393423979-735|146=1|55=EUR/USD|63=SPOT|15=EUR|54=0|38=5000000|453=4|448=ST_TEST_BU2|447=D|452=500|2376=18|448=x.abc.sales|447=D|452=11|2376=24|448=X_TEXT|447=D|452=3|2376=24|448=X_ACCOUNT2|447=D|452=24|2376=18|10=163|

Initiator settings:

[SESSION]
AppDataDictionary=FIX50SP2.xml
StartTime=00:00:00
EndTime=23:59:59
BeginString=FIXT.1.1
SenderCompID=DEF
TargetCompID=ABC
HeartBtInt=30
DefaultApplVerID=FIX.5.0SP2
TransportDataDictionary=FIXT11.xml

Acceptor settings:

[SESSION]
AppDataDictionary=FIX50SP2.xml
StartTime=00:00:00
EndTime=23:59:59
BeginString=FIXT.1.1
SenderCompID=ABC
TargetCompID=DEF
HeartBtInt=30
DefaultApplVerID=FIX.5.0SP2
TransportDataDictionary=FIXT11.xml
dedpichto
  • 220
  • 1
  • 4
  • 9
  • Check the machine's PATH environment variable. – Hans Passant Dec 16 '20 at 15:08
  • "QuickFix.Net.NETCore.FIX50SP2" is not an official package. It was created by some rando and is using old code. (I have no idea what the rasapi32.dll issue is, sorry.) – Grant Birchmeier Dec 16 '20 at 16:41
  • @HansPassant Thank you, I'll check it tomorrow – dedpichto Dec 16 '20 at 17:52
  • @GrantBirchmeier The Nuget page of QuickFix.Net.NETCore.FIX50SP2 states that the authors are "AlgomateInc, Connamara Systems, LLC and QuickFIX/n contributors". It confuses :-) – dedpichto Dec 16 '20 at 17:56
  • @dedpichto Yes, that rando published the package from official source, and gave legit credit to the project (though I never heard of AlgomateInc). However, **I am literally the lead maintainer of QuickFIX/n**, and I work for Connamara, and I'm telling you that this is not an official Nuget release :) – Grant Birchmeier Dec 16 '20 at 19:32

1 Answers1

0

Your program can not find the Windows dynamic library (in .Net called an assembly) named rasapi32.dll at run-time. This file is most likely a dependency of another library your program is linking directly with. I would guess the QuickFix library.

If you can find rasapi32.dll somewhere on your machine you can either add its path to the PATH environment variable or copy it to the working directory of your program. Using the PATH environment variable is preferable in case this library requires other ones in its own directory.

Alternatively you can use a program called depends to walk the tree of library dependencies of your program, and it will indicate which library your program requires, that in turn requires rasapi32.dll

JimmyNJ
  • 1,134
  • 1
  • 8
  • 23