2011-10-21 40 views
4

我有使用Exchange Web服务发送电子邮件的代码(EWS 1.1 API)。有没有例外,如果我使用硬编码参数值,比如:无法找到自动发现服务

service.AutodiscoverUrl("[email protected]", 
    delegate 
    { 
    return true; 
    }); 

,但如果我尝试使用一个变量,然后同时发现URL我收到错误,“自动发现服务找不到”。

string userName = "[email protected]"; 
service.AutodiscoverUrl(userName, 
    delegate 
    { 
    return true; 
    }); 

是否有任何方式使用变量与autodiscoverurl方法?我究竟做错了什么?

Sanjay

回答

7

这不太可能导致问题。通常,如果自动发现失败,这是因为证书无效或网络连接问题。

在ExchangeService实例(MSDN article)上启用跟踪以查看发生了什么。

+0

愚蠢的错误.... –

+0

我启用了跟踪,服务器交换服务器,我配置了自己(用于测试),所以我假设我已经错过了某些内容 - 但不知道从“自动发现服务找不到”的位置,在启用跟踪时没有更多细节。 –

+0

我有同样的情况,当我传递字符串变量时,我得到:自动发现服务无法找到...我需要对其进行硬编码并且工作完美,没有人找到解决此问题的任何解决方案。 EWS 2.0 – dovla091

0

我意识到这篇文章已经过了几年了,但为了文档的缘故,我提供了一个额外的解决方案。

此行为另一个可能的原因是在客户端试图强制TLS 1.2连接时,EWS服务器仅支持TLS 1.0。我正要投降调查这种行为 - 一个EWS应用程序在一个盒子上工作,同一个应用程序在另一个盒子上(失去同一个邮箱)失败 - 问题是一台机器可以协商TLS 1.0,另一个只能做TLS 1.2,失败。在注册表中启用客户端TLS 1.0出站连接(HKLM\System\CCS\Services\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client,DWORD值'Enabled'设置为0x1修复了这个问题,不需要重新启动