我正在使用C#EWS(ExchangeWebServices)
我有ExchangeServer,即具有以下IP:10.81.5.1。
现在,我正在尝试访问ExchangeServer,如下所示:
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2013_SP1);
service.Credentials = new WebCredentials("myuser", "mypassword", "10.81.5.1");
service.TraceEnabled = true;
service.TraceFlags = TraceFlags.All;
service.AutodiscoverUrl("myuser@mydomain.local", RedirectionUrlValidationCallback);//Throw an exception
我得到以下例外:
无法找到自动发现服务。
我如何知道我的ExchangeServer域名?
当我更改以下(并在ExchangeServer计算机内运行代码)
service.Credentials = new WebCredentials("myuser", "mypassword");
意味着域是localhost我成功运行我的代码无例外。
我的代码有什么错误?
如果我没有在ExchangeServer机器内运行代码,我需要写“10.81.5.1”?我怎么知道我的ExchangeServer“域名”?
感谢。
答案 0 :(得分:5)
我的问题的原因是交换服务器和我的开发机器不在同一个域中
通过删除以下行解决:
service.AutodiscoverUrl("myuser@mydomain.local", RedirectionUrlValidationCallback);//Throw an exception
添加.asmx EWS的uri:
service.Url = new Uri("https://IP/EWS/Exchange.asmx");
答案 1 :(得分:2)
以下3行对我有用:
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);
service.Credentials = new WebCredentials("<loginID..not email address>", "< the pw>");
service.AutodiscoverUrl("<your emailaddress>",RedirectionUrlValidationCallback);
如果您的登录ID是abc123。那太好了。我需要指定域
答案 2 :(得分:0)
在我的机器(win7)上,我可以在这里找到它:控制面板 - 系统 - 计算机名称,域和工作组设置。也许你可以尝试一下。