System.ServiceModel.Channels.MessageHeader Error

Posted by user220511 on Stack Overflow See other posts from Stack Overflow or by user220511
Published on 2010-12-30T16:39:24Z Indexed on 2010/12/30 16:54 UTC
Read the original article Hit count: 225

Filed under:
|

I'm trying to get the following to work on my machine but I get an error (Cannot create an instance of the abstract class or interface 'System.ServiceModel.Channels.MessageHeader')

using System; using System.IO; using System.Reflection;

namespace com.mycompanyname.business { /// /// Summary description for SessionCreateRQClient. /// class SessionCreateRQClient { /// /// The main entry point. /// [STAThread] static void Main(string[] args) { try { // Set user information, including security credentials and the IPCC. string username = "user"; string password = "password"; string ipcc = "IPCC"; string domain = "DEFAULT";

string temp = Environment.GetEnvironmentVariable("tmp"); // Get temp directory
string PropsFileName = temp + "/session.properties";  // Define dir and file name
DateTime dt = DateTime.UtcNow;
string tstamp = dt.ToString("s") + "Z";

//Create the message header and provide the conversation ID.
MessageHeader msgHeader = new MessageHeader();
msgHeader.ConversationId = "TestSession";  // Set the ConversationId

From from = new From();
PartyId fromPartyId = new PartyId();
PartyId[] fromPartyIdArr = new PartyId[1];
            fromPartyId.Value = "WebServiceClient";
fromPartyIdArr[0] = fromPartyId;
from.PartyId = fromPartyIdArr;
msgHeader.From = from;

To to = new To();
PartyId toPartyId = new PartyId();
PartyId[] toPartyIdArr = new PartyId[1];
toPartyId.Value = "WebServiceSupplier";
toPartyIdArr[0] = toPartyId;
to.PartyId = toPartyIdArr;
msgHeader.To = to;

//Add the value for eb:CPAId, which is the IPCC. //Add the value for the action code of this Web service, SessionCreateRQ.

msgHeader.CPAId = ipcc;
msgHeader.Action = "SessionCreateRQ";
Service service = new Service();
service.Value = "SessionCreate";
msgHeader.Service = service;

MessageData msgData = new MessageData();
msgData.MessageId = "mid:[email protected]";
msgData.Timestamp = tstamp;
msgHeader.MessageData = msgData;

Security security = new Security();
SecurityUsernameToken securityUserToken = new SecurityUsernameToken();
securityUserToken.Username = username;
securityUserToken.Password = password;
securityUserToken.Organization = ipcc;
securityUserToken.Domain = domain;
security.UsernameToken = securityUserToken;


SessionCreateRQ req = new SessionCreateRQ();
SessionCreateRQPOS pos = new SessionCreateRQPOS();
SessionCreateRQPOSSource source = new SessionCreateRQPOSSource();
source.PseudoCityCode = ipcc;
pos.Source = source;
req.POS = pos;

SessionCreateRQService serviceObj = new SessionCreateRQService();
serviceObj.MessageHeaderValue = msgHeader;
serviceObj.SecurityValue = security;


SessionCreateRS resp = serviceObj.SessionCreateRQ(req); // Send the request

if (resp.Errors != null && resp.Errors.Error != null)
{
 Console.WriteLine("Error : " + resp.Errors.Error.ErrorInfo.Message);
}

else
{
 msgHeader = serviceObj.MessageHeaderValue;
 security = serviceObj.SecurityValue;

 Console.WriteLine("**********************************************");
 Console.WriteLine("Response of SessionCreateRQ service");
 Console.WriteLine("BinarySecurityToken returned : " + security.BinarySecurityToken);
 Console.WriteLine("**********************************************");
 string ConvIdLine = "convid="+msgHeader.ConversationId; // ConversationId to a string
 string TokenLine = "securitytoken="+security.BinarySecurityToken; // BinarySecurityToken to a string
 string ipccLine = "ipcc="+ipcc; // IPCC to a string

 File.Delete(PropsFileName);  // Clean up
 TextWriter tw = new StreamWriter(PropsFileName); // Create & open the file
 tw.WriteLine(DateTime.Now);  // Write the date for reference
 tw.WriteLine(TokenLine);  // Write the BinarySecurityToken
 tw.WriteLine(ConvIdLine);  // Write the ConversationId
 tw.WriteLine(ipccLine);  // Write the IPCC
 tw.Close();

 //Console.Read();
}

} catch(Exception e) { Console.WriteLine("Exception Message : " + e.Message ); Console.WriteLine("Exception Stack Trace : " + e.StackTrace); Console.Read(); }

} } }

I have added the reference System.ServiceModel and the lines: using System.ServiceModel; using System.ServiceModel.Channels;

but I continue to get that error when trying to compile -- "Cannot create an instance of the abstract class or interface 'System.ServiceModel.Channels.MessageHeader'"

I am using Microsoft Visual Studio 2008 Version 9.0.21022.8 RTM Microsoft .NET Framework Version 3.5 SP1 Professional Edition

Is there another reference I have to add? Or a dll to move over?

I wonder was the code above written for Framework 2.0 only?

Thanks for your help.

© Stack Overflow or respective owner

Related posts about c#

Related posts about .NET