2010-09-16 9 views
5

क्या सी # का उपयोग कर एक्सचेंज 2007 के लिए ईडब्ल्यूएस का उपयोग करके मीटिंग अनुरोध कैसे बनाया जाए, इसके बारे में कहीं भी एक कामकाजी उदाहरण है? किन संपत्तियों की आवश्यकता है? मैंने एक वेब सेवा संदर्भ जोड़ा है और विभिन्न वस्तुओं को बनाने और भेजने के लिए कनेक्ट कर सकते हैं लेकिन त्रुटि प्राप्त करना जारी रखें "संपत्ति के लिए कार्रवाई सेट अमान्य है।" प्रतिक्रिया संदेश पर। यह कभी नहीं कहते हैं क्या संपत्ति अवैधएक्सचेंज वेब सर्विसेज मीटिंग अनुरोध बनाएं कार्य उदाहरण

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]; 

है माइक्रोसॉफ्ट क्या संदेश आइटम की तरह दिखना चाहिए की http://msdn.microsoft.com/en-us/library/aa494190(EXCHG.140).aspx पर एक एक्सएमएल उदाहरण प्रदान करता है। बस इन गुणों को सेट करना पर्याप्त प्रतीत नहीं होता है। क्या कोई मुझे बता सकता है कि मैं क्या खो रहा हूं या मुझे कुछ बेहतर उदाहरण या दस्तावेज़ीकरण के लिए इंगित करता हूं?

<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> 

उत्तर

3

यह शायद आपके लिए बहुत देर हो चुकी है, लेकिन यह किसी और के लिए यह कोशिश कर रहा है।

यह मुद्दा निर्दिष्ट-निर्दिष्ट पैरा प्रदान करने के साथ प्रतीत होता है। मैंने IsMeetingSpecified हटा दिया और अनुरोध काम किया। संशोधित कैलेंडरइटेम टाइप यहाँ है।

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]" 
      } 
     }, 
    } 
}; 
संबंधित मुद्दे