繁体   English   中英

Exchange Web 服务问题 - 现场邮箱和非现场邮箱

[英]Exchange Web Service issues - onsite mailboxes and offsite ones

我们系统的各个部分都使用 Exchange Web 服务来发送内部电子邮件和创建日历条目。

从历史上看,我们有一个本地交换服务器托管所有邮箱; 但是,我们目前正在迁移到基于云的交换服务。

我的问题是,在本地交换服务器上运行的代码不适用于我们迁移到云上托管的邮箱(我们在提交迁移之前移动了一些进行测试)。

我认为问题的症结在于AutodiscoverUrl调用 - 这个块找到本地托管的邮箱(显然出于安全原因匿名):

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls13 | SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls | SecurityProtocolType.Ssl3;

ExchangeService myExchangeService = new ExchangeService(ExchangeVersion.Exchange2007_SP1)
{
    TraceEnabled = true,
    TraceEnablePrettyPrinting = true,
    TraceFlags = TraceFlags.All,
    TraceListener = labelTraceListener,
    Credentials = new WebCredentials(mySuperUser, mySUPassword),
    ImpersonatedUserId = new ImpersonatedUserId(ConnectingIdType.SmtpAddress, "MyEmailName") //The bit before the @
};
myExchangeService.AutodiscoverUrl("MyEmailName@MyDomain", RedirectionCallback);

但是,如果我尝试将模拟目标切换到已迁移到云的邮箱之一,则AutodiscoverUrl调用似乎被未授权响应阻止。 考虑到如果我使用与远程邮箱之一直接关联的凭据而不进行模拟,它会起作用,我不太确定问题可能是什么。 我已经设法确定了一些可能性 - 但我无权访问交换服务器的配置,所以在我对什么有一个相对确凿的想法之前,我不愿意将这个问题提交给网络管理员问题肯定是。

我认为这要么是用于模拟的超级用户帐户不存在于新的基于云的服务器上,要么是我的谷歌搜索没有返回的新设置?

当然,除非我在代码本身中做错了什么?

更新:通过将域附加到超级用户(即它的完整电子邮件地址),我可以找到所有邮箱 - 它只是缺乏从云托管邮箱发送任何内容的能力。

收到的异常如下:

There was a problem sending the email - please try again!<br />Microsoft.Exchange.WebServices.Data.ServiceRequestException: The request failed. The remote server returned an error: (401) Unauthorized. ---> System.Net.WebException: The remote server returned an error: (401) Unauthorized.
   at System.Net.HttpWebRequest.GetResponse()
   at Microsoft.Exchange.WebServices.Data.EwsHttpWebRequest.Microsoft.Exchange.WebServices.Data.IEwsHttpWebRequest.GetResponse() in \\REDMOND\EXCHANGE\BUILD\E15\15.00.0913.015\SOURCES\sources\dev\EwsManagedApi\src\EwsManagedApi\Core\EwsHttpWebRequest.cs:line 113
   at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.GetEwsHttpWebResponse(IEwsHttpWebRequest request) in \\REDMOND\EXCHANGE\BUILD\E15\15.00.0913.015\SOURCES\sources\dev\EwsManagedApi\src\EwsManagedApi\Core\Requests\ServiceRequestBase.cs:line 821
   --- End of inner exception stack trace ---
   at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.GetEwsHttpWebResponse(IEwsHttpWebRequest request) in \\REDMOND\EXCHANGE\BUILD\E15\15.00.0913.015\SOURCES\sources\dev\EwsManagedApi\src\EwsManagedApi\Core\Requests\ServiceRequestBase.cs:line 831
   at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.ValidateAndEmitRequest(IEwsHttpWebRequest& request) in \\REDMOND\EXCHANGE\BUILD\E15\15.00.0913.015\SOURCES\sources\dev\EwsManagedApi\src\EwsManagedApi\Core\Requests\ServiceRequestBase.cs:line 724
   at Microsoft.Exchange.WebServices.Data.MultiResponseServiceRequest`1.Execute() in \\REDMOND\EXCHANGE\BUILD\E15\15.00.0913.015\SOURCES\sources\dev\EwsManagedApi\src\EwsManagedApi\Core\Requests\MultiResponseServiceRequest.cs:line 157
   at Microsoft.Exchange.WebServices.Data.ExchangeService.InternalCreateItems(IEnumerable`1 items, FolderId parentFolderId, Nullable`1 messageDisposition, Nullable`1 sendInvitationsMode, ServiceErrorHandling errorHandling) in \\REDMOND\EXCHANGE\BUILD\E15\15.00.0913.015\SOURCES\sources\dev\EwsManagedApi\src\EwsManagedApi\Core\ExchangeService.cs:line 401
   at Microsoft.Exchange.WebServices.Data.Item.InternalCreate(FolderId parentFolderId, Nullable`1 messageDisposition, Nullable`1 sendInvitationsMode) in \\REDMOND\EXCHANGE\BUILD\E15\15.00.0913.015\SOURCES\sources\dev\EwsManagedApi\src\EwsManagedApi\Core\ServiceObjects\Items\Item.cs:line 198
   at Microsoft.Exchange.WebServices.Data.EmailMessage.InternalSend(FolderId parentFolderId, MessageDisposition messageDisposition) in \\REDMOND\EXCHANGE\BUILD\E15\15.00.0913.015\SOURCES\sources\dev\EwsManagedApi\src\EwsManagedApi\Core\ServiceObjects\Items\EmailMessage.cs:line 143
   at Assets_Controls_EmailControlWrap.btnSend_Click(Object sender, EventArgs e) in N:\Documents\Code\FIS_NewLibrary\Franklin Information System\Assets\Controls\EmailControlWrap.aspx.vb:line 369

使用此工具: https ://aka.ms/PillarEXOBasicAuth 我们发现了问题 - 虽然 UI 说基本身份验证已打开,但它不在后端; 打开它可以正确解决问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM