我已尝试过以下两种方法,但都返回结果"无法找到自动发现服务。"
http://msdn.microsoft.com/en-us/library/gg591267(v=EXCHG.140).aspx
service.Credentials = new NetworkCredential(userData.EmailAddress, userData.Password);
if (userData.AutodiscoverUrl == null)
{
service.AutodiscoverUrl(userData.EmailAddress, RedirectionUrlValidationCallback);
userData.AutodiscoverUrl = service.Url;
}
else
{
service.Url = userData.AutodiscoverUrl;
}
return service;
}
http://code.msdn.microsoft.com/Exchange-2013-Set-pull-14c8360b#content
static ExchangeService GetBinding()
{
// Create the binding.
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP1);
// Define credentials.
service.Credentials = new WebCredentials("myemail@work.com", "password");
// Use the AutodiscoverUrl method to locate the service endpoint.
try
{
service.AutodiscoverUrl("myemail@work.com", RedirectionUrlValidationCallback);
}
catch (AutodiscoverRemoteException ex)
{
Console.WriteLine("Exception thrown: " + ex.Error.Message);
}
// Display the service URL.
Console.WriteLine("AutodiscoverURL: " + service.Url);
return service;
}
在一个实例中,我输入了我的电子邮件和密码,另一个是硬编码的。在尝试自动发现时,两者都会挂起,并最终失败并显示消息"无法找到自动发现服务。"我根据教程添加了引用,并且在Microsoft.Exchange.WebServices.dll下显示了自动发现...还有其他我缺少的东西吗?
答案 0 :(得分:0)
尝试添加:
service.UseDefaultCredentials = false;
设置凭据后
答案 1 :(得分:0)
我不知道你是否已经解决了这个问题,因为我在寻找相同(或类似?)问题的解决方案时,我碰到了你的帖子。
奇怪的是: 由于它在调试模式下完美运行,但没有安装为Windows服务,我更改了Windows服务属性中的“登录”设置(services.msc,右键单击已安装的服务,属性,登录选项卡)并将其设置为“本地系统帐户”并选中“允许服务与桌面交互”选项。
这对我有用。