代码之家  ›  专栏  ›  技术社区  ›  Ta01

奇怪的WCF错误-IIS托管-上下文被中止

  •  1
  • Ta01  · 技术社区  · 16 年前

    我有一个WCF服务,它执行一些文档转换并将文档返回给调用者。在我的本地开发服务器上进行本地开发时,服务托管在ASP.NET开发服务器上,控制台应用程序调用该操作并在几秒钟内执行。

    当我通过一个.svc文件在IIS中托管服务时,其中两个文档工作正常,第三个文档崩溃,它开始使用OpenXMLSDK构建word文档,但随后就消失了。我认为这与IIS有关,但我不能对此指手画脚。

    SQL 2005 DB/IBM DB2->由其他开发人员编写的用于公开数据的WCF服务。此服务只有一个使用basicHttpBinding的端点

    我的服务调用他的服务,获取相关数据,使用OpenXMLSDK生成MicrosoftWord文档,将其保存在服务器上,并将路径返回给用户。

    我也在使用basicHttpBinding,尽管我已经尝试了wsHttpBinding,但结果相同。

    要查看错误消息,请执行以下操作:

    http://myservername.mydomain.inc/MyService/Service.Svc . 这可能是由于服务端点绑定未使用HTTP协议造成的。这也可能是由于服务器中止了HTTP请求上下文(可能是由于服务器关闭)。有关详细信息,请参阅服务器日志。

    在过去的两天里,我一直在试图弄清楚到底发生了什么,我尝试了一切,包括将maxReceivedMessageSize、maxBufferSize、maxBufferPoolSize等更改为大值,我甚至包括:

     <httpRuntime maxRequestLength="2097151" executionTimeout="120"/>
    

    看看IIS是否因此窒息。

    http://localhost:3332/myService.svc

    当我把它放在IIS上,并试图让Windows窗体应用程序调用它时,我得到了错误。

    还有 日志中没有错误

    基本上,我调用了另一个开发人员编写的两个服务操作。

    Faulting application w3wp.exe, version 6.0.3790.1830, stamp 42435be1, faulting module kernel32.dll, version 5.2.3790.3311, stamp 49c5225e, debug? 0, fault address 0x00015dfa.
    

    它被归类为.NET 2.0运行时错误。

    谢谢你的帮助,睡眠不足正困扰着我。

    4 回复  |  直到 16 年前
        1
  •  1
  •   gljivar    14 年前

    我看到这样一条信息:

    接收对的HTTP响应时出错 http://myservername.mydomain.inc/MyService/Service.Svc . 这可能是由于服务端点绑定未使用HTTP协议造成的。这也可能是由于服务器中止了HTTP请求上下文(可能是由于服务器关闭)。有关详细信息,请参阅服务器日志。

    我相信您尝试传输的word文档也是不可序列化的,所以这可能是问题所在。

        2
  •  0
  •   blowdart    16 年前

    是的,我们需要日志,或者至少了解您正在记录的内容。我假设您在WCF级别同时登录了消息和传输。

    需要注意的一点是权限。当您在Cassini下运行时,web服务器将作为当前登录的用户运行。这隐藏了任何SQL或CAS权限问题(老实说,您的帐户通常是本地管理员)。一旦发布到IIS,您现在就可以在应用程序池用户下运行,默认情况下,应用程序池用户的限制要大得多。

    KB919789

        3
  •  0
  •   Ta01    16 年前

    告诉你,我变了 IIS 6 to work in IIS 5.0 Isolation mode 一切正常。古怪的

        4
  •  0
  •   Milnev    11 年前

    我在使用 IEnumerable<T> IQueryable<T> 作为 IEnumerable<T> ,所以我所要做的就是添加 .ToList<T>() 我的LINQ声明。

    我换了房间 IEnumerable<T> IList<T> 防止再次犯同样的错误。