我的目的是运行一个访问C ++本机函数的Web服务。因此,我创建了一个WCF服务应用程序(包含契约和实现),它引用了围绕我的Native C ++代码的C ++ / CLI Wrapper。我做了以下步骤(来自http://blogs.msdn.com/b/jorman/archive/2007/08/31/loading-c-assemblies-in-asp-net.aspx的2b)
我可以运行该服务,只要我不创建包装器对象,它在构造函数中创建本机C ++对象。问题是创建本机C ++对象。如果我使用WCFTestClient测试它,我会得到非特定错误:
无法调用该服务。可能的原因:服务处于脱机状态或无法访问。
我的问题是:这个概念有问题吗?如果我从C#-Project中调用它,我可以使用这个包装器和本机C ++对象。我是否必须选择其他项目类型而不是WCF服务应用程序?
感谢您的帮助!
答案 0 :(得分:0)
这个概念是正确的,它应该可以正常工作。我认为当服务尝试创建本机C ++对象时,会发生错误/异常,并导致服务崩溃。我建议你编写一个小的C#测试程序,它调用C ++ / CLI DLL来创建本机C ++,如果这个小程序工作正常,那么将代码移到你的服务中。
或者您可以调试服务,找到实际错误,这也有帮助。