最近我一直在WCF的前端,特别是托管在IIS(不是自己托管)做了很多工作。WCF/IIS超时是否需要重写?
这只是我,还是有人有问题微调超时值。我将首先提到您需要从拍子中微调的超时时间。
看看下面结合端点值,所有以某种方式或其他涉及超时:
- closeTimeout = “00:01:00”
- openTimeout =“00:01: 00"
- receiveTimeout = “00:10:00”
- 的SendTimeout = “00:01:00”
- MAXBUFFERSIZE = “999”
- maxBufferPoolSize = “524288”
- maxReceivedMessageSize = “999”
- readerQuotas MAXDEPTH = “32”
- readerQuotas maxStringContentLength = “8192”
- readerQuotas的MaxArrayLength = “16384”
- readerQuotas maxBytesPerRead = “4096”
- readerQuotas maxNameTableCharCount = “16384”
这些只是客户端端点配置值,我们甚至还没有开始,现在为了让服务在II中运行S,还需要设置服务器端绑定,它提供与客户端相同级别的复杂性。
一旦完成,在长时间调用WCF服务期间配置IIS也很重要,否则最终会导致主线程中止。
IIS需要保持禁用状态,应用程序池还带有大量的超时值App Pool,这是一个详细的主题。除此之外,还有另外7个超时值需要特别微调,否则会期望复杂的WCF调用失败。
对不起,但其他人有没有闻到老鼠?
我的理解是,基本上(大多数)这些超时值是因信任问题而存在的。我相信,我的意思是“我们不相信服务在合理的时间内完成他们应该做的事情”。 SOA可靠通信的每个方面都是事先不信任的,正因为如此,我们似乎需要大量的捕获网络(超时值)来确保一定程度的可管理性。让我们面对它,如果我们信任系统及时给出响应,为什么需要设置超时值?
我所有这一切的问题是,坦率地说,它回到前面,如果我在我的应用程序中有5个系统通常是可信的并且通常会给出及时的响应。我很沮丧,我仍然需要经历冗长的定义这些边界的过程,因为OOB,WCF/IIS托管失败。
我发现WCF技术是虚伪的,在网络演员和营销演示期间,通常总是会提到WCF允许从实现中更好地抽象,允许开发人员更容易地编写和部署,并通过“简单”定义端点能够专注于业务逻辑,而不是强调架构。在实践中我发现没有什么比事实更能说明问题。有了WCF,您需要深入了解服务运行的细节,而且您需要手动进行微调,与ASMX服务中通常部署时没有太多争论的情况不同,而且只需要一些IIS微调,甚至很少。
所以我提出的问题是:它只是我还是你们中的任何一个人都有同样的挫折和观察?欢迎所有评论!
你知道吗 - 对那个标记问题的人来说,很明显MS并不认为这是一个坏主意,因此为什么我修复了第4版中的挫败感...... – 2010-03-07 01:31:26
IIS托管总是超时。我正在认真考虑将我的所有服务移至自行托管... – 2010-08-05 14:31:30