我正在使用Exchange Web服务(EWS)在SharePoint Visual Web Part中创建Outlook会议邀请。以下是获取EWS实例的代码段。
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2013);
service.UseDefaultCredentials = true;
service.AutodiscoverUrl("firstName.Lastname@xxxxxxxx.com", RedirectionUrlValidationCallback);
当我在测试控制台应用程序中使用它时,它可以正常工作。但是,如果我在具有相同用户帐户的同一服务器上的Visual Web Part中使用它,则会出现以下错误。
Microsoft.Exchange.WebServices.Data.AutodiscoverLocalException:找不到自动发现服务。 在Microsoft.Exchange.WebServices.Autodiscover.AutodiscoverService.InternalGetLegacyUserSettings [TSettings](字符串emailAddress,列表1重定向EmailAddresses,Int32&currentHop) 在Microsoft.Exchange.WebServices.Autodiscover.AutodiscoverService.GetLegacyUserSettings [TSettings](字符串emailAddress) 在Microsoft.Exchange.WebServices.Autodiscover.AutodiscoverService.InternalGetLegacyUserSettings(字符串emailAddress,列出1个要求的设置) 在Microsoft.Exchange.WebServices.Autodiscover.AutodiscoverService.GetUserSettings(字符串userSmtpAddress,UserSettingName [] userSettingNames) 在Microsoft.Exchange.WebServices.Data.ExchangeService.GetAutodiscoverUrl(字符串emailAddress,ExchangeVersion请求的ServerVersion,AutodiscoverRedirectionUrlValidationCallback validateRedirectionUrlCallback) 在Microsoft.Exchange.WebServices.Data.ExchangeService.AutodiscoverUrl(字符串emailAddress,AutodiscoverRedirectionUrlValidationCallback validateRedirectionUrlCallback)
答案 0 :(得分:0)
对Visual Web Part不太熟悉,所以我不确定在其中运行的用户上下文是什么。作为实验,您可以在上面的程序中(而不是UseDefaultCredentials
)指定实际的凭据,看看它是否成功运行?如果是这样,那么您要么需要在代码中指定凭据,要么找到一种方法来更改Visual Web Part的用户上下文。
如果无效,那么您可能必须在ExchangeService对象上启用跟踪并查看幕后情况。我的经验是,AD错误报告非常有限,直到您看到HTTP层返回的内容为止。