我有一个WCF服务,它执行一些文档转换并将文档返回给调用者。在本地开发本地开发服务器时,该服务托管在ASP.NET开发服务器上,控制台应用程序调用该操作并在几秒内执行。奇怪的WCF错误 - IIS托管 - 上下文被中止
当我通过.svc文件在IIS中托管服务时,其中两个文档正常工作,第三个文档弹出,它开始使用OpenXml Sdk构造Word文档,但随后死亡。我认为这与IIS有关,但我无法指责它。
我生成的文件总共有三种类型。简而言之,它是如何工作的
SQL 2005 DB/IBM DB2 - > WCF服务由其他开发人员编写以公开数据。此服务只有一个端点使用basicHttpBinding
我的服务调用其服务,获取相关数据,使用Open Xml Sdk生成Microsoft Word文档,将其保存在服务器上并将路径返回给用户。
Word文档不大于100KB。
我也使用basicHttpBinding,虽然我已经尝试wsHttpBinding具有相同的结果。
令人惊讶的是,它在本地有多快,甚至更多的文件生成得很好,它是拒绝工作的第三种文档类型。
于错误消息:
而接收到HTTP响应http://myservername.mydomain.inc/MyService/Service.Svc时发生错误。这可能是由于服务端点绑定不使用HTTP协议。这也可能是由于HTTP请求上下文被服务器中止(可能是由于服务器关闭)。查看服务器日志获取更多详细信
我花了最后2天试图弄清楚是怎么回事,我已经尝试了一切,包括改变maxReceivedMessageSize,MAXBUFFERSIZE,maxBufferPoolSize,等等等等,以较大的值,我甚至包括:
<httpRuntime maxRequestLength="2097151" executionTimeout="120"/>
看到,也许如果IIS因此窒息。
以编程方式,服务没有什么特别之处,它只是使用Open Xml Sdk构建数据中的单词文档,就像我说的那样,当通过在asp.net dev服务器上本地运行的控制台应用程序调用时,所有3个文档都可以工作,即http://localhost:3332/myService.svc
当我在IIS上托管它,我试图让Windows窗体应用程序来调用它,我得到的错误。
我知道你会问日志,所以是的,我的主机上启用了日志记录功能。
而且有在日志中没有错误,我记录了一切。
基本上我调用另一个开发人员编写的两个服务操作。
MyOperation调用 - > HisOperation1然后是HisOperation2,这两个调用都给了我复杂的类型。我明天会看看他的代码,因为他正在使用LINQ2SQL,并且可能会有一些有趣的事情发生。他正在使用各种各样的集合等,但事实是,我可以运行完全相同的文档,让服务在ASP WebDev服务器上本地托管时,几秒钟内就可以称其为“文档3”,这很奇怪,为什么它会按比例缩小卡西尼并在IIS上爆炸?
从日志看来,在调用HisOperation1和HisOperation2之后,该服务刚刚进入la-la land模式,Windows事件日志中存在应用程序池(w3wp.exe)错误。
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运行时错误。
任何帮助表示赞赏,缺乏睡眠正在让我。
帮助我Obi-Wan Kenobi,你是我唯一的希望。
只是为了确保:您知道ASP.NET Health Monitoring会将未处理的异常记录为警告,而不是错误? – 2009-07-17 10:19:01
我使用WCF跟踪当我说日志时,对不起,如果我不清楚.. :( – kd7 2009-07-17 12:21:24