我有一个 WCF 服务,它执行一些文档转换并将文档返回给调用者。在我的本地开发服务器上进行本地开发时,该服务托管在 ASP.NET 开发服务器上,控制台应用程序调用该操作并在几秒钟内执行。
当我通过 .svc 文件在 IIS 中托管服务时,其中两个文件正常工作,第三个文件被炸毁,它开始使用 OpenXml Sdk 构建 word 文档,但随后就死了。我认为这与 IIS 有关,但我不能指望它。
我一共生成了三种类型的文档。简而言之,这就是它的工作原理
SQL 2005 DB/IBM DB2 -> 由其他开发人员编写的 WCF 服务以公开数据。此服务只有一个使用 basicHttpBinding 的端点
My Service 调用他的服务,获取相关数据,使用 Open Xml Sdk 生成 Microsoft Word 文档,将其保存在服务器上并将路径返回给用户。
word文档不超过100KB。
我也在使用 basicHttpBinding,尽管我尝试了 wsHttpBinding 的结果相同。
令人惊奇的是它在本地的速度有多快,而且其中两个文档生成得很好,它的第三种文档类型拒绝工作。
到错误信息:
接收对http://myservername.mydomain.inc/MyService/Service.Svc的 HTTP 响应时发生错误。这可能是由于服务端点绑定未使用 HTTP 协议。这也可能是由于服务器中止了 HTTP 请求上下文(可能是由于服务器关闭)。有关更多详细信息,请参阅服务器日志。
在过去的 2 天里,我一直在试图弄清楚发生了什么,我已经尝试了一切,包括将 maxReceivedMessageSize、maxBufferSize、maxBufferPoolSize 等更改为较大的值,我什至包括:
<httpRuntime maxRequestLength="2097151" executionTimeout="120"/>
看看 IIS 是否因此而窒息。
以编程方式,该服务没有什么特别之处,它只是使用 Open Xml Sdk 从数据中构造单词文档,就像我说的,当通过在 asp.net 开发服务器上本地运行的控制台应用程序调用时,所有 3 个文档在本地工作,即http: //localhost:3332/myService.svc
当我在 IIS 上托管它并尝试让 Windows 窗体应用程序调用它时,我收到错误消息。
我知道您会要求提供日志,所以是的,我在我的主机上启用了日志记录。
日志中没有错误,我正在记录所有内容。
基本上我调用另一个开发人员编写的两个服务操作。
MyOperation 调用 -> HisOperation1 然后是 HisOperation2,这两个调用都给了我复杂的类型。明天我要看看他的代码,因为他正在使用 LINQ2SQL,并且那里可能会发生一些有趣的事情。他正在使用各种集合等,但事实上我可以运行完全相同的文档,当服务在 ASP WebDev 服务器上本地托管时,让我们在几秒钟内将其称为“文档 3”,这是最奇怪的,为什么会它在缩小的 Cassini 上运行并在 IIS 上炸毁?
从日志看来,在调用 HisOperation1 和 HisOperation2 后服务刚刚进入 la-la 地死机,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 运行时错误。
任何帮助表示赞赏,睡眠不足对我来说很重要。
帮助我欧比旺克诺比,你是我唯一的希望。