2013-09-23 188 views
8

我得到一個錯誤,當我嘗試創建約會:EWS的Exchange Web服務API AutodiscoverUrl例外

預期的XML節點類型是XmlDeclaration,但實際類型是 元素。

這個異常發生在我撥打AutodiscoverUrl時。
我創建了一個Web服務來執行此操作。

[webMethod] 
CreateAppointment() 
{ 
    var service = new ExchangeService(ExchangeVersion.Exchange2007_SP1) 
    { 
     Credentials = new WebCredentials("[email protected]", "mypassowrd") 
    }; 

    service.AutodiscoverUrl("[email protected]"); 

    //---------------------------------------------------------------------- 
    var app = new Appointment(service) 
    { 
     Subject = "Meet George", 
     Body = "You need to meet George", 
     Location = "1st Floor Boardroom", 
     Start = DateTime.Now.AddHours(2), 
     End = DateTime.Now.AddHours(3), 
     IsReminderSet = true, 
     ReminderMinutesBeforeStart = 15 
    }; 
    app.RequiredAttendees.Add(new Attendee("[email protected]")); 
    app.Save(SendInvitationsMode.SendToAllAndSaveCopy); 
} 
+0

我爲此付出了賞金。這對一些用戶非常有用,但不適用於其他用戶。我對電子郵件地址有個例外。我能夠發送到電子郵件地址。 – Jess

+0

它不需要處理電子郵件地址。我只是運行這個代碼的電子郵件地址有問題,它工作正常:'_exchangeService =新ExchangeService(ExchangeVersion.Exchange2013_SP1); _exchangeService.AutodiscoverUrl(_sender);' – Jess

+0

@Jess:您可以檢查EWS虛擬目錄是否配置爲在IIS中使用ASP.NET 1.1?如果是這樣,請嘗試將其更改爲ASP.NET 2.0。 – Douglas

回答

0

一些潛在的答案。

  1. 傳遞錯誤的網址或域名。
  2. 傳入錯誤的電子郵件地址。
  3. 重建Windows配置文件有時可以提供幫助。 (警告:讓IT管理員這樣做)。這可能是矯枉過正。
  4. 用戶可能設置了舊的,錯誤的或多個Outlook配置文件。電子郵件服務器名稱在Outlook配置文件中可能很糟糕。 (請參閱控制面板>郵件)
0

自動發現取決於兩個因素:從用戶的郵件域到Exchange服務器上的自動發現數據點

  1. DNS條目。通常情況下,您將擁有名爲autodiscover.domain.com的DNS條目,但有多種方法可以針對不同版本的Exchange進行設置。如果正確的DNS條目不存在,則自動發現將失敗。

  2. 託管在Exchange服務器上的自動發現數據(我相信它是一個XML文件)並通過HTTP訪問。如果無法訪問(可能位於防火牆後面),則自動發現將失敗。

檢查相應的DNS條目,並自動發現信息到客戶端訪問。

相關問題