无法通过AppDomains传递GCHandle

时间:2010-07-03 06:43:04

标签: c# asp.net c++ quickfix

我使用asp.net和C#实现了quickfix引擎。 我正在调用quickfix_net.dll,它是用非托管C ++编写的。 但是我在调​​用quickfix_net.dll时遇到“无法通过AppDomains传递GCHandle”的错误。

但同样的事情是在控制台应用程序中运行但不在IIS下运行,即asp.net

请任何人调查此事。 提前谢谢

以下是我的代码:

SessionSettings settings = new SessionSettings(tradeClientPath);

ApplicationMessage application = new ApplicationMessage();
FileStoreFactory storeFactory = new FileStoreFactory(settings);
FileLogFactory logFactory = new FileLogFactory(settings);
MessageFactory messageFactory = new DefaultMessageFactory();

SocketInitiator initiator = new SocketInitiator
  (application, storeFactory, settings, logFactory, messageFactory);
initiator.start();

Message message = new Message();

OrdType ordType = new OrdType(OrdType.MARKET);

QuickFix42.NewOrderSingle newOrderSingle = new QuickFix42.NewOrderSingle(new ClOrdID("1"), new HandlInst('1'), new Symbol("WAKEN\00110048=2")
                  , new Side(Side.BUY), new TransactTime(), new OrdType(OrdType.MARKET));

newOrderSingle.set(new OrderQty(10));
newOrderSingle.set(new TimeInForce(TimeInForce.DAY));

Message.Header header = newOrderSingle.getHeader();
header.setField(new SenderCompID("CLIENT1"));
header.setField(new TargetCompID("EXECUTOR"));

message = newOrderSingle;

**QuickFix.Session.sendToTarget(message);** // here i am getting exception

initiator.stop();

网站参考是:http://www.quickfixengine.org/quickfix/doc/html/index.html

1 个答案:

答案 0 :(得分:1)

这是一个使用QuickFix.Net的known issue,它只适用于进程中。所以基本上没有太多的选择,没有更改FIX插件。