Microsoft.Exchange.WebServices.Data -- 底层连接被关闭错误
Microsoft.Exchange.WebServices.Data -- The underlying connection was closed Error
我正在使用 Microsoft.Exchange.WebServices.Data 连接到 Office 365 outlook 并提取电子邮件及其附件。这在本地开发机器上正常工作。我移至服务器后它无法正常工作并失败并显示以下错误消息。
Error: 0 : Exception occurred: The request failed. The underlying connection was closed: An unexpected error occurred on a receive. at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.GetEwsHttpWebResponse(IEwsHttpWebRequest request)
at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.ValidateAndEmitRequest(IEwsHttpWebRequest& request)
at Microsoft.Exchange.WebServices.Data.MultiResponseServiceRequest`1.Execute()
at Microsoft.Exchange.WebServices.Data.ExchangeService.FindItems(FolderId parentFolderId, String queryString, ViewBase view)
已为 outlook 的完全限定域名打开防火墙。office365.com 来自服务器。下面是抓到的网络,已经ack成功了,貌似还是失败了。请让我知道这个问题的可能原因。谢谢,
enter image description here
很可能是它的 TLS,Office365 要求你使用 TLS 1.2,如果你的 运行 它所在的服务器是 运行 旧版本的 .Net 框架,这不是默认的 https://docs.microsoft.com/en-us/mem/configmgr/core/plan-design/security/enable-tls-1-2-client.
一般只是做
System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
将确保您的代码始终使用 TLS 1.2(只要框架不是很旧)
我正在使用 Microsoft.Exchange.WebServices.Data 连接到 Office 365 outlook 并提取电子邮件及其附件。这在本地开发机器上正常工作。我移至服务器后它无法正常工作并失败并显示以下错误消息。
Error: 0 : Exception occurred: The request failed. The underlying connection was closed: An unexpected error occurred on a receive. at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.GetEwsHttpWebResponse(IEwsHttpWebRequest request)
at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.ValidateAndEmitRequest(IEwsHttpWebRequest& request)
at Microsoft.Exchange.WebServices.Data.MultiResponseServiceRequest`1.Execute()
at Microsoft.Exchange.WebServices.Data.ExchangeService.FindItems(FolderId parentFolderId, String queryString, ViewBase view)
已为 outlook 的完全限定域名打开防火墙。office365.com 来自服务器。下面是抓到的网络,已经ack成功了,貌似还是失败了。请让我知道这个问题的可能原因。谢谢,
enter image description here
很可能是它的 TLS,Office365 要求你使用 TLS 1.2,如果你的 运行 它所在的服务器是 运行 旧版本的 .Net 框架,这不是默认的 https://docs.microsoft.com/en-us/mem/configmgr/core/plan-design/security/enable-tls-1-2-client.
一般只是做
System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
将确保您的代码始终使用 TLS 1.2(只要框架不是很旧)