gpt4 book ai didi

c# - 打开连接时 Exchange Web 服务流式订阅超时

转载 作者:行者123 更新时间:2023-11-30 13:59:01 27 4
gpt4 key购买 nike

我目前正在解决与 Exchange Web 服务相关的问题。问题在于,在打开与流式订阅的连接(通过 StreamingSubscriptionConnection 对象)后,操作会在调用 Open 方法时挂起。下面是挂起的代码,供引用:

_streamingSubscriptionConnection = new StreamingSubscriptionConnection(_exchangeService, _connectionLifetime);
_streamingSubscriptionConnection.AddSubscription(_subscription);
_streamingSubscriptionConnection.OnNotificationEvent += new StreamingSubscriptionConnection.NotificationEventDelegate(OnNotificationEvent);
_streamingSubscriptionConnection.OnSubscriptionError += new StreamingSubscriptionConnection.SubscriptionErrorDelegate(OnSubscriptionError);
_streamingSubscriptionConnection.OnDisconnect += new StreamingSubscriptionConnection.SubscriptionErrorDelegate(OnDisconnect);
_streamingSubscriptionConnection.Open();

通常需要大约两分钟,然后抛出一个 ServiceRequestException 其消息是:

The request has failed. The operation has timed out.

另外值得一提的是,即使我将超时设置为一分钟,仍然会超过一分钟然后抛出这个异常。调用永远不会超过该打开命令。

我的问题是,过去有人遇到过这种情况吗?此外,是否有任何可用的工具可用于诊断任何连接问题以确定异常是在我这一端、Exchange 服务器端还是在中间某处?我尝试过 Fiddler 和 Microsoft Network Monitor 来寻找任何模式,但我很难辨别任何东西。

提前致谢!

编辑:除此之外,如果我添加一个跟踪监听器,我会得到很多输出。我可以看到它检索订阅 ID,然后尝试连接。当它发出连接请求时,这是在发出 Open 命令和超时之间记录的内容:

<Trace Tag="EwsRequestHttpHeaders" Tid="10" Time="2013-01-24 19:16:18Z">
POST /ews/exchange.asmx HTTP/1.1
Content-Type: text/xml; charset=utf-8
Accept: text/xml
User-Agent: ExchangeServicesClient/14.03.0032.000
Accept-Encoding: gzip,deflate
</Trace>

<Trace Tag="EwsRequest" Tid="10" Time="2013-01-24 19:16:18Z" Version="14.03.0032.000">
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<t:RequestServerVersion Version="Exchange2010_SP1" />
</soap:Header>
<soap:Body>
<m:GetStreamingEvents>
<m:SubscriptionIds>
<t:SubscriptionId>GABsdGNmaXN3bXNnY2EwNi5mbmZpcy5jb20QAAAAnQCowdNSt0iTEhqVr8+a1GPHu2t+yM8I</t:SubscriptionId>
</m:SubscriptionIds>
<m:ConnectionTimeout>30</m:ConnectionTimeout>
</m:GetStreamingEvents>
</soap:Body>
</soap:Envelope>
</Trace>

我试图排除网络问题,但这样做有点困难。在这一点上欢迎任何建议。

最佳答案

对于那些追随我的人来说,这个问题最终与 .Net 或 EWS 库没有任何关系。

问题最终与我们公司负载均衡器的持久性设置有关。使用我们的负载平衡器,如果为 EWS 流订阅调用启用任何类型的持久性,这些连接将失败。不幸的是,当时我并不知道我自己和 Exchange 服务器之间存在负载平衡器,因为开发人员无法访问此处的基础设施。

无论如何,希望这对将来的人有所帮助!

关于c# - 打开连接时 Exchange Web 服务流式订阅超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14468822/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com