c++ - 从 Webservice 访问 C++ COM dll

标签 c++ web-services com critical-section

我正在使用来自网络服务的 COM dll。 添加 COM dll 作为引用。我在 Global.asax 中将该对象声明为静态的。 我正在 Application_Start 中创建 COM 对象。

我必须在每个请求中调用 COM dll 接口(interface)函数。 我在这里遇到异常,因为内存损坏。我可以看到同时请求出现时发生的日志。 请让我知道最好的方法是什么。如何使其线程安全。?

最佳答案

尝试在每个请求中创建一个新实例并且不使用该对象的应用程序范围。


如果您在应用程序范围内访问它(例如通过 Application_Start),您将需要确保它对于多线程是安全的。我不知道 C++ dll 如何处理线程,但您可以在 asp.net 级别管理多线程。

例如,要管理一个简单的应用程序级计数器,代码如下:

Application.Lock();
Application["SomeGlobalCounter"] =
   (int)Application["SomeGlobalCounter"] + 1;
Application.UnLock();

有关更多信息,您可能希望在 Application State 上查看 MSDN 页面.

关于c++ - 从 Webservice 访问 C++ COM dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6328571/

相关文章:

C++ 程序无法正确显示文本文件中的内容

c++ - GenICam::gcstring 来自 int

c++ - 平行于向上 vector 转换阴影时的 LookAt 矩阵

web-services - 从 DTO 到 Entity 和 Entity 到 DTO 的简单方法?

java - 使用 token 对客户端和服务器端进行身份验证的正确方法?

java - WebService 类中的 Spring Autowired 不起作用

windows - 将 hwnd GDI 调用重定向到系统内存位图?

linux - 我可以在依赖于 COM 组件的 Mono 上运行 .NET 对象吗?

c++ - C 中的动态二维数组分配

winapi - RTLCopyMemory 在 Vista 中工作吗?