Here i am using WCF
server:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
using System.Messaging;
using System.Configuration;
namespace ConsoleApplication3
{
[ServiceContract]
public interface iservice
{
[OperationContract(IsOneWay=true)]
void operation();
}
public class Service : iservice
{
#region iservice Members
public void operation()
{
Console.WriteLine("hi");
}
#endregion
}
class Program
{
static void Main(string[] args)
{
string queuename=ConfigurationManager.AppSettings["queuename"];
Uri httpaddress = new Uri("http://localhost:8003/Service");
if (!MessageQueue.Exists(queuename))
{
MessageQueue.Create(queuename);
}
ServiceHost host = new ServiceHost(typeof(Service), httpaddress);
host.Open();
Console.WriteLine("host opening");
Console.ReadLine();
host.Close();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
using System.Messaging;
using System.Configuration;
namespace ConsoleApplication3
{
[ServiceContract]
public interface iservice
{
[OperationContract(IsOneWay=true)]
void operation();
}
public class Service : iservice
{
#region iservice Members
public void operation()
{
Console.WriteLine("hi");
}
#endregion
}
class Program
{
static void Main(string[] args)
{
string queuename=ConfigurationManager.AppSettings["queuename"];
Uri httpaddress = new Uri("http://localhost:8003/Service");
if (!MessageQueue.Exists(queuename))
{
MessageQueue.Create(queuename);
}
ServiceHost host = new ServiceHost(typeof(Service), httpaddress);
host.Open();
Console.WriteLine("host opening");
Console.ReadLine();
host.Close();
}
}
}
app.config for server
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<bindings>
<netMsmqBinding>
<binding name="NewBinding0" exactlyOnce="false" >
<security mode="None" />
</binding>
</netMsmqBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior name="NewBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceThrottling />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service behaviorConfiguration="NewBehavior" name="ConsoleApplication3.Service">
<endpoint address="net.msmq://ahosur1/private/anup" binding="netMsmqBinding"
bindingConfiguration="NewBinding0" contract="ConsoleApplication3.iservice" />
<endpoint binding="mexHttpBinding" bindingConfiguration="" contract="IMetadataExchange" />
</service>
</services>
</system.serviceModel>
<appSettings>
<add key="queuename" value="ahosur1\private$\anup"/>
</appSettings>
</configuration>
after this u need to run svcutil tool
client:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication5
{
class Program
{
static void Main(string[] args)
{
iserviceClient proxy = new iserviceClient();
proxy.operation();
Console.WriteLine("client completed");
Console.ReadLine();
}
}
}
client app.config:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.serviceModel>
<bindings>
<netMsmqBinding>
<binding name="NetMsmqBinding_iservice" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
deadLetterQueue="System" durable="true" exactlyOnce="false"
maxReceivedMessageSize="65536" maxRetryCycles="2" receiveErrorHandling="Fault"
receiveRetryCount="5" retryCycleDelay="00:30:00" timeToLive="1.00:00:00"
useSourceJournal="false" useMsmqTracing="false" queueTransferProtocol="Native"
maxBufferPoolSize="524288" useActiveDirectory="false">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="None">
<transport msmqAuthenticationMode="WindowsDomain" msmqEncryptionAlgorithm="RC4Stream"
msmqProtectionLevel="Sign" msmqSecureHashAlgorithm="Sha1" />
<message clientCredentialType="Windows" />
</security>
</binding>
</netMsmqBinding>
</bindings>
<client>
<endpoint address="net.msmq://machinename/private/anup" binding="netMsmqBinding"
bindingConfiguration="NetMsmqBinding_iservice" contract="iservice"
name="NetMsmqBinding_iservice" />
</client>
</system.serviceModel>
</configuration>
in the endpoint address u need to specify ur computer name in place of m/c name.
Remember to click “Mark as Answer” on the post, if it helps you. Because It helps others to find the solution.
Anup Hosur
HP
http://anup-anuphosur.blogspot.com/