2016-04-27 312 views
0

运行在IIS 7.5上使用asp.net 2.0的asmx WebService时出现错误。 webservice使用Dllimport调用从dll调用一个方法。调用的地方是发生错误的地方。不过,我没有得到任何例外,只是来自任何浏览器的ERR_CONNECTIO_RESET。调用DLLImport时发生IIS 7.5错误

我已经试过:

  • DLL位于在正确的地方,bin文件夹。我试着将 移到system32和其他位置。但是,如果我更改名称 DLLIMPORT调用DLL我确实得到一个错误,找不到 DLL,这意味着它确实发现DLL,只是崩溃的方法。
  • 我也使用GetLastWin32Error()并得到消息127 ERROR_PROC_NOT_FOUND。不知道它是否相关,但是我也尝试过 。
  • 如果我在VisualStudio调试时运行Webservice,那么在调用 时不会出错。所以错误是在IIS上运行时。
  • 我也在Windows XP上使用IIS 6的旧机器上试过,并且没有得到 错误。这让我觉得它有一个安全问题做到,因为 当我创建了网站上的IIS我得到这个屏幕:

IIS 6

,我没有可配置在IIS 7.5的任何安全选项。所以我想这

http://forums.iis.net/post/2119656.aspx

哪些步骤来配置与文件夹了足够的权限用户。但是,仍然没有运气。

我现在相信的可能是与GOP(组策略对象)相关联的东西。我正在运行此服务的电脑位于公司网络中。我有管理员权限并且没有防火墙限制,但是我不知道IIS 7.5是否使用来自不同用户的东西或需要不同的权限。

我发现的所有其他线程对我来说都没有正确的答案。任何帮助,我可以得到赞赏。

回答

0

最后经过一个星期的处理,我发现了这个问题。发现有一些日志我可以检查C:\ Windows \ System32 \ LogFiles \ HTTPERR,我发现错误代码Connection_Abandoned_By_ReqQueue。

经过一番长时间的调查后,我发现这个消息意味着程序因为存储损坏而丢失(如在这篇文章Connection_Abandoned_By_ReqQueue Problems上看到的那样)。我使用的DLL相当老,生成的人没有以正确的方式处理内存的版本(至少对于IIS 7.5),所以我一直在寻找另一个库来完成这项工作,或者使用一台带有IIS 6的服务器。