WCF,DLLIMPORT奇怪的问题

时间:2013-09-04 20:34:23

标签: wcf c#-4.0 iis-7 hosting dllimport

我有一个非常奇怪的问题,我无法弄明白。

首先,我在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中也不起作用,也可以通过名称withotu路径引用DLL。

有任何线索吗?

也。 32位,改变应用程序池级别对文件夹的权限访问,已经在机器上完全管理。所有尝试但都不成功。

编辑:添加到所有,因为我没有说清楚,这不是我的第一个WCF真实设置。我之前已经制作了很多服务并自己部署(可能大约有50-60个服务)。我问,因为我之前从未见过这个问题,我尝试了所有我知道的技巧,可以在互联网上找到我所知道的资源。

我们决定将整个服务整合到WPF项目本地,因为只要IIS没有托管,它就可以正常工作。但这确实不是一件好事,因为这些数据和工作不应该在客户端进行,而是在服务器端进行。现在它很好,因为需要使用它的软件还没有公开发布,所以它并不重要。

如果我找不到任何其他内容,则下一个选项将是Web服务器上托管的网络TCP / IP Windows服务。

1 个答案:

答案 0 :(得分:0)

我们决定不得不在主软件中对逻辑进行硬编码,并为此问题摆脱Web服务。我们将不得不处理更新,安装取消注册并手动重新注册非托管DLL,但至少它是有效的。

我们已经添加了超过5个Web服务,因为它们没有问题但是它们都没有使用DLL导入。

相关问题