背景:我创建了一个包含 2 个 c 文件的 DLL。这些 c 文件引用了第三个 c 文件,该文件定义了一个用户定义的类型(我们称之为 class_pointer),它是一个类类型的指针。
例如 typedef class pointer_class *class_pointer;
然后定义类: typedef class pointer_class {..}
pointer_class 具有与它相关的各种变量和函数,原始 2 c 文件通过 class_pointer 使用这些变量和函数。
我在 ASP.NET C# Web 应用程序中使用这个 DLL。我正在使用 PInvoke 将函数导入 dll。但是,当我调用这些涉及class_pointer 的函数时,在IIS 上运行的网站会挂起。这在 VS 调试器中不会发生。如果我注释掉所说的 class_pointers,一切都会顺利运行——我可以访问 DLL 和所有内容。
我已尝试更改我的 bin 目录中包含的所有 DLL 的权限(为了安全起见),以使 NETWORK SERVICE 具有读取/执行权限。dll 将在没有 class_pointers 的情况下工作,所以我认为这不是权限问题。当涉及这些 class_pointers 时,是否有人对可能导致 IIS 挂起的原因有任何建议?