2010-09-16 32 views
5

Có một ví dụ làm việc ở bất cứ đâu về cách tạo yêu cầu họp sử dụng EWS cho Exchange 2007 bằng C# không? Thuộc tính nào được yêu cầu? Tôi đã thêm tham chiếu dịch vụ web và có thể kết nối để tạo và gửi các mục khác nhau nhưng vẫn gặp phải lỗi "Đặt hành động không hợp lệ cho thuộc tính". trên thư trả lời. Nó không bao giờ nói thuộc tính nào là không hợp lệDịch vụ Web Trao đổi Tạo Yêu cầu Cuộc họp Làm việc Ví dụ

var ews = new ExchangeServiceBinding { 
    Credentials = new NetworkCredential("user", "pass"), 
    Url = "https://servername/ews/exchange.asmx", 
    RequestServerVersionValue = new RequestServerVersion { 
     Version = ExchangeVersionType.Exchange2007} 
}; 
var startDate = new DateTime(2010, 9, 18, 16, 00, 00); 
var meeting = new CalendarItemType { 
    IsMeeting = true, 
    IsMeetingSpecified = true, 
    Subject = "test EWS", 
    Body = new BodyType {Value = "test body", BodyType1 = BodyTypeType.HTML}, 
    Start = startDate, 
    StartSpecified = true, 
    End = startDate.AddHours(1), 
    EndSpecified = true, 
    MeetingTimeZone = new TimeZoneType{ 
     TimeZoneName = TimeZone.CurrentTimeZone.StandardName, BaseOffset = "PT0H"}, 
    Location = "Meeting", 
    RequiredAttendees = new [] { 
     new AttendeeType{Mailbox =new EmailAddressType{ 
         EmailAddress ="[email protected]",RoutingType = "SMTP"}}, 
     new AttendeeType{Mailbox =new EmailAddressType{ 
         EmailAddress ="[email protected]",RoutingType = "SMTP"}} 
    } 
}; 
var request = new CreateItemType { 
    SendMeetingInvitations = 
     CalendarItemCreateOrDeleteOperationType.SendToAllAndSaveCopy, 
    SendMeetingInvitationsSpecified = true, 
    SavedItemFolderId = new TargetFolderIdType{Item = new DistinguishedFolderIdType{ 
             Id=DistinguishedFolderIdNameType.calendar}}, 
    Items = new NonEmptyArrayOfAllItemsType {Items = new ItemType[] {meeting}} 
}; 
CreateItemResponseType response = ews.CreateItem(request); 
var responseMessage = response.ResponseMessages.Items[0]; 

Microsoft cung cấp một ví dụ XML tại http://msdn.microsoft.com/en-us/library/aa494190(EXCHG.140).aspx của mục tin nhắn trông như thế nào. Chỉ cần thiết lập các thuộc tính này dường như không đủ. Ai đó có thể cho tôi biết những gì tôi đang thiếu hoặc chỉ cho tôi một số ví dụ hay tài liệu hay hơn?

<CreateItem 
     xmlns="http://schemas.microsoft.com/exchange/services/2006/messages" 
     SendMeetingInvitations="SendToAllAndSaveCopy" > 
    <SavedItemFolderId> 
    <t:DistinguishedFolderId Id="calendar"/> 
    </SavedItemFolderId> 
    <Items> 
    <t:CalendarItem> 
     <t:Subject>Meeting with attendee0, attendee1, attendee2</t:Subject> 
     <t:Body BodyType="Text">CalendarItem:TextBody</t:Body> 
     <t:Start>2006-06-25T10:00:00Z</t:Start> 
     <t:End>2006-06-25T11:00:00Z</t:End> 
     <t:Location>CalendarItem:Location</t:Location> 
     <t:RequiredAttendees> 
     <t:Attendee> 
      <t:Mailbox> 
      <t:EmailAddress>[email protected]</t:EmailAddress> 
      </t:Mailbox> 
     </t:Attendee> 
     <t:Attendee> 
      <t:Mailbox> 
      <t:EmailAddress>[email protected]</t:EmailAddress> 
      </t:Mailbox> 
     </t:Attendee> 
     </t:RequiredAttendees> 
     <t:OptionalAttendees> 
     <t:Attendee> 
      <t:Mailbox> 
      <t:EmailAddress>[email protected]</t:EmailAddress> 
      </t:Mailbox> 
     </t:Attendee> 
     </t:OptionalAttendees> 
     <t:Resources> 
     <t:Attendee> 
      <t:Mailbox> 
      <t:EmailAddress>[email protected]</t:EmailAddress> 
      </t:Mailbox> 
     </t:Attendee> 
     </t:Resources> 
    </t:CalendarItem> 
    </Items> 
</CreateItem> 

Trả lời

3

Đây có thể là quá muộn đối với bạn, nhưng điều này cho bất kỳ ai khác đang cố gắng điều này.

Vấn đề dường như là cung cấp thông số được chỉ định. Tôi đã xóa IsMeetingSpecified và yêu cầu đã hoạt động. Đây là CalendarItemType đã sửa đổi.

var meeting = new CalendarItemType 
{ 
    IsMeeting = true, 
    Subject = "test EWS", 
    Body = new BodyType { Value = "test body", BodyType1 = BodyTypeType.HTML }, 
    Start = startDate, 
    StartSpecified = true, 
    End = startDate.AddHours(1), 
    EndSpecified = true, 
    MeetingTimeZone = new TimeZoneType 
    { 
     TimeZoneName = TimeZone.CurrentTimeZone.StandardName, 
     BaseOffset = "PT0H" 
    }, 
    Location = "Room 1", 
    RequiredAttendees = new[] { 
     new AttendeeType 
     { 
      Mailbox =new EmailAddressType 
      {  
       EmailAddress ="[email protected]" 
      } 
     }, 
    } 
}; 
Các vấn đề liên quan