[Mono-devel-list] problem execution exe files with mono
    rosier_a@oreka.com 
    rosier_a at oreka.com
       
    Wed Jul 28 10:11:31 EDT 2004
    
    
  
hello,
I try to execute this code :
using System;
using System.Net;
using System.Text;
namespace ExchangeSDK.Snippets.CSharp
{
   class CreatingAnAppointmentWebDAV
   {
      [STAThread]
      static void Main(string[] args)
      {
         // Variables.
         string strExchSvrName = "";
         string strMailbox = "";
         string strCalendarUri = "";
         string strApptItem = "";
         string strDomain = "";
         string strUserName = "";
         string strPassword = "";
         string strApptRequest = "";
         string strMailInfo = "";
				 string strMailInfoVal = "";
         string strCalInfo = "";
         string strXMLNSInfo = "";
         string strHeaderInfo = "";
				 string strDate = "";
         System.Net.HttpWebRequest PROPPATCHRequest = null;
         System.Net.WebResponse PROPPATCHResponse = null;
         System.Net.CredentialCache MyCredentialCache = null;
         byte[] bytes = null; 
         System.IO.Stream PROPPATCHRequestStream = null;
         try
         {
				 
				
						 strDate= "2004-07-17";
						 
						 strMailInfoVal = args[0];
						// strDate = args[1];
						 
            // Exchange server name;
            strExchSvrName = "100.100.1.10";
            // Mailbox folder name.
            strMailbox = "toto.titi";
            // Appointment item.
            strApptItem = "testappointment.eml";
            // URI of the user's calendar folder.
            strCalendarUri = "http://" + strExchSvrName + "/exchange/"
            + strMailbox + "/Calendrier/";
						
						Console.WriteLine(strCalendarUri);
            // User name and password of appointment creator.
            strUserName = "titi.toto";
            strDomain = "Domainname";
            strPassword = "paswd";
            // XML namespace info for the WebDAV request.
            strXMLNSInfo = "xmlns:g=\"DAV:\" "
            + "xmlns:e=\"http://schemas.microsoft.com/exchange/\" "
            + "xmlns:mapi=\"http://schemas.microsoft.com/mapi/\" "
            + "xmlns:mapit=\"http://schemas.microsoft.com/mapi/proptag/\" "
            + "xmlns:x=\"xml:\" xmlns:cal=\"urn:schemas:calendar:\" "
            + "xmlns:dt=\"urn:uuid:c2f41010-65b3-11d1-a29f-00aa00c14882/\" "
            + "xmlns:header=\"urn:schemas:mailheader:\" "
            + "xmlns:mail=\"urn:schemas:httpmail:\"";
            // Set the appointment item properties.  See the documentation on the properties
	    // in the urn:schemas:calendar: for more information.
            strCalInfo = "<cal:location>meetappt Location</cal:location>"
            + "<cal:dtstart dt:dt=\"dateTime.tz\">"+ strDate +"T23:00:00.000Z</cal:dtstart>"
            + "<cal:dtend dt:dt=\"dateTime.tz\">"+ strDate +"T23:30:00.000Z</cal:dtend>"
            + "<cal:instancetype dt:dt=\"int\">0</cal:instancetype>"
            + "<cal:busystatus>BUSY</cal:busystatus>"
            + "<cal:meetingstatus>CONFIRMED</cal:meetingstatus>"
            + "<cal:alldayevent dt:dt=\"boolean\">0</cal:alldayevent>"
            + "<cal:responserequested dt:dt=\"boolean\">1</cal:responserequested>";
            // Set the required attendee of the appointment.
            strHeaderInfo = "<header:to>" + strMailbox + "</header:to>";
            // Set the subject of the appointment.
            strMailInfo = "<mail:subject>"+ strMailInfoVal +"</mail:subject>"
            + "<mail:htmldescription>Let's meet here</mail:htmldescription>";
            // Build the XML body of the PROPPATCH request.
            strApptRequest = "<?xml version=\"1.0\"?>"
            + "<g:propertyupdate " + strXMLNSInfo + ">"
            + "<g:set><g:prop>"
            + "<g:contentclass>urn:content-classes:appointment</g:contentclass>"
            + "<e:outlookmessageclass>IPM.Appointment</e:outlookmessageclass>"
            + strMailInfo
            + strCalInfo
            + strHeaderInfo
            + "<mapi:finvited dt:dt=\"boolean\">1</mapi:finvited>"
            + "</g:prop></g:set>"
            + "</g:propertyupdate>";
            // Create a new CredentialCache object and fill it with the network
            // credentials required to access the server.
            MyCredentialCache = new System.Net.CredentialCache();
            MyCredentialCache.Add( new System.Uri(strCalendarUri),
                                   "NTLM",
                                   new System.Net.NetworkCredential(strUserName, strPassword, strDomain)
                                  );
            // Create the HttpWebRequest object.
            PROPPATCHRequest = (System.Net.HttpWebRequest)HttpWebRequest.Create(strCalendarUri + strApptItem);
            // Add the network credentials to the request.
            PROPPATCHRequest.Credentials = MyCredentialCache;
            // Specify the PROPPATCH method.
           PROPPATCHRequest.Method = "PROPPATCH";
            // Encode the body using UTF-8.
            bytes = Encoding.UTF8.GetBytes((string)strApptRequest);
            // Set the content header length.  This must be
            // done before writing data to the request stream.
            PROPPATCHRequest.ContentLength = bytes.Length;
            // Get a reference to the request stream.
            PROPPATCHRequestStream = PROPPATCHRequest.GetRequestStream();
            // Write the message body to the request stream.
            PROPPATCHRequestStream.Write(bytes, 0, bytes.Length);
            // Close the Stream object to release the connection
            // for further use.
            PROPPATCHRequestStream.Close();
            // Set the content type header.
            PROPPATCHRequest.ContentType = "text/xml";
            // Create the appointment in the Calendar folder of the
            // user's mailbox.
            PROPPATCHResponse = (System.Net.HttpWebResponse)PROPPATCHRequest.GetResponse();
            // Clean up.
            PROPPATCHResponse.Close();
            Console.WriteLine("Appointment successfully created.");
         }
         catch(Exception ex)
         {
            // Catch any exceptions. Any error codes from the PROPPATCH
            // method request on the server will be caught
            // here, also.
            Console.WriteLine(ex.Message);
         }
      }
   }
}
I compile with mono in windows 2000.
If i execute test.exe --> OK
But if  I execute
	Mono test.exe, an excetion occured : Request Started
			Unhandled Exception: System.InvalidOperationException: request started
in <0x00033> System.Net.HttpWebRequest:CheckRequestStarted ()
in <0x0004c> (wrapper remoting-invoke-with-check) System.Net.HttpWebRequest:Chec
kRequestStarted ()
in <0x00011> System.Net.HttpWebRequest:set_ContentType (string)
in <0x004fb> ExchangeSDK.Snippets.CSharp.CreatingAnAppointmentWebDAV:Main (strin
g[])
the problem provides of the lines :                
               PROPPATCHRequest.ContentType = "text/xml";
can you help me ?
////////////////////////////////////////////////////////////
// Webmail Oreka : http://www.oreka.com
////////////////////////////////////////////////////////////
    
    
More information about the Mono-devel-list
mailing list