我有一个非常奇怪的问题,我无法弄清楚。
首先,我在 VS2010 中完成了 WCF 服务 4.0。该服务有几个方法可以返回字符串数组、数据表等。其中一些使用来自 C++ dll 的函数 [dllimport]
我做了一个测试控制台来测试一切。当我从 Visual Studio 运行 WCF 并使用生成的路径时,它工作得非常好。
现在这里变得奇怪了。如果我打开我的本地 IIS 创建一个新应用程序并指向我的 VS 源代码 WCF 我可以完美地看到它。
现在使用来自 IIS 本地的 http 路径,而不是我刷新方法似乎都是正确的。但是当我运行我的测试应用程序时,我可以毫无问题地调用任何函数,除了使用 DLLIMPORT 函数的任何人。它们都崩溃了,即使通过跟踪 CES 异常也无法跟踪。
逐行记录表明异常确实是在调用这些函数
有问题的 DLL 是相同的,并且由于仍处于测试阶段,因此我的计算机的路径是硬编码的,并且文件夹是 c:\DLL\mylib.DLL,所以当你实际运行时,与卷影复制 IIS/Visual Studio 无关。即使它在 sys32 中,DLL 也按名称引用而没有路径。
有什么线索吗?
还。32位,更改文件夹的应用程序池级别权限访问,机器上的完全管理员也已经。都试过了,但都不成功。
编辑:添加所有内容,因为我没有说清楚,这不是我的第一个 WCF 真正设置。我之前已经制作了很多服务并自己部署了它们(可能大约有 50-60 个服务)。我之所以问,是因为我以前从未见过这个问题,我尝试了所有我知道的技巧,并且可以在我认识的互联网和资源上找到。
我们决定将整个服务合并到本地的 WPF 项目中,因为只要 IIS 不托管它就可以工作。但这真的不是一件好事,因为这些数据和工作不应该在客户端完成,而是在服务器端完成。现在没关系,因为需要使用它的软件尚未公开发布,所以它并不重要。
如果我没有找到其他任何东西,下一个选项将是托管在 Web 服务器上的 net TCP/IP windows 服务。