代码之家  ›  专栏  ›  技术社区  ›  Adam Tuttle

Exchange Web服务2010入门

  •  23
  • Adam Tuttle  · 技术社区  · 16 年前

    据我所知,WebDAV将随EWS2010一起消失,因此应用程序服务器将不再能够像以前那样连接,而且如果没有WebDAV,连接到EWS将变得越来越困难。理论上讲,在.Net中做这件事应该比其他任何事情都容易。。。正确的?! )

    得到 创建/更新

    我最初得到了一些示例代码,这些代码实际上是有效的,但我很快意识到它已经过时了。使用的类型和类在 the current documentation .

    ExchangeService svc = new ExchangeService();
    svc.Credentials = new WebCredentials(AuthEmailAddress, AuthEmailPassword);
    svc.AutodiscoverUrl(AutoDiscoverEmailAddress);
    

    值得一提的是,它使用了示例代码附带的程序集: Microsoft.Exchange.WebServices.dll (“喵”)。

    在我意识到这不是当前实现连接的标准方法,而且它还起作用之前,我尝试在它的基础上添加一个方法来创建日历项,我 copied from here :

    static void CreateAppointment(ExchangeServiceBinding esb)
    {
        // Create the appointment.
        CalendarItemType appointment = new CalendarItemType();
    
        ...
    }
    

    我马上就要面对 ExchangeService ExchangeServiceBinding (“ESB”);所以我开始在google上搜索,试图找出如何获得ESB定义,以便 CreateAppointment this blog post 这解释了如何从WSDL生成代理类,我做到了。

    不幸的是,这导致了一些冲突,其中在原始程序集中定义的类型, Microsoft.Exchange.WebServices.dll EWS.dll 汇编(我从 services.wsdl 由Exchange服务器提供)。

    我排除了议会,这只会让事情变得更糟。我从少数几个错误和警告变成了25个错误和2510个警告。各种类型和方法均未找到。这里显然有点不对劲。

    the extra steps it takes in VS2008

    我删除了(实际上,现在,只是排除)所有以前我一直在尝试的程序集;我为添加了一个服务引用 https://my.exchange-server.com/ews/services.wsdl

    现在我只剩下一个错误和一个警告。

    警告:
    元素“transport”不能包含子元素“extendedProtectionPolicy”,因为父元素的内容模型为空。

    这是指在添加服务引用时对web.config所做的更改;我刚发现 a fix for that here on SO . 我已经评论了这一节指出,它确实使警告消失,所以求爱。

    不过,这个错误并不容易解决:

    错误:

    这是指我用来创建EWS连接的函数,由每个web方法调用:

    private ExchangeService getService(String AutoDiscoverEmailAddress, String AuthEmailAddress, String AuthEmailPassword)
    {
        ExchangeService svc = new ExchangeService();
        svc.Credentials = new WebCredentials(AuthEmailAddress, AuthEmailPassword);
        svc.AutodiscoverUrl(AutoDiscoverEmailAddress);
        return svc;
    }
    

    这个函数与示例代码中的MEWS程序集完美地结合在一起,但是 Exchange服务 ExchangeServiceBinding ,这是我检查的第一件事。)

    在这一点上,由于我没有遵循文档中的任何指示(我在文档中找不到任何地方说要向Exchange服务器的services.wsdl添加服务引用——但这似乎是迄今为止我得到的最好的/最远的),我觉得我在瞎飞。

    我知道我需要弄清楚该换什么 Exchange服务 / ExchangeServiceBinding

    我应该替换什么 Exchange服务 / 具有有没有其他比MSDN更好的地方可以使用EWS文档?

    1 回复  |  直到 9 年前
        1
  •  38
  •   Community Mohan Dere    6 年前

    我建议转到托管EWS API。这比你自己把所有东西拼凑起来要容易得多。它同时支持Exchange2007 SP1和Exchange2010。我想您会发现它更易于使用,并且可能会消除您的问题。

    版本1: 这是你的名字 download from Microsoft .

    MSDN docs

    对于版本2(感谢@ruffin!)

    Download - MSDN Docs


    由提问者添加: