Register  |  Login




Advertisement

Start Your Own Q&A Site

Create your own Q&A site easily, allowing you to quickly grow a new community around any subject matter or generate new organic traffic for your existing website.

Question

Status: Open Points: 75 Time: 04:51 - Mar 24, 2009  

lalit

The problem that we are facing in windows service is that we are unable to send the socket through

The problem that we are facing in windows service is that we are unable to send the socket through windows application running on one computer to the windows service running on another computer. The following are the steps that we have followed.



At Window Service Side running on Computer A:-



· We have created a window service and under OnStart event we have initialize the object of TCP listener through port 8001.

· Start the TCP listener.

· Made a thread for WaitingForClient and start this thread so that it always lies in listen mode for accept the socket from Computer B.

· In the method WaitingForClient we have accepted the socket and start another thread for read this socket.



At Window Application running on Computer B:-



Made a socket that has AddressFamily InterNetwork, SocketType is stream and ProtocolType is TCP.
Made the object of IPEndPoint by initialize it through IP address of Computer A and Port 8001.




When we connecting this socket to the Computer A through IPEndPoint, it does not connect and throws the exception of connection timeout.



Categories

Answer Discussion
Tutorials

 

discord

Date:: Nov 02, 2009

Time:: 15:41

Don't do it in the OnStart, instead in the contstructor or a method called by the constructor, create a thread that does the work. The thread would then initiate the connection or start the listener. The service control manager expects OnStart to return right away and not delay.

example:

using System;
using System.Collections.Generic;
using System.Text;
using System.Configuration;
using System.ServiceModel;
using System.ServiceProcess;
using System.Threading;
using System.IO;

namespace FileService
{
public class FileProcessService : ServiceBase
{
const string BASE_THREAD_NAME = "FileService";
private EventWaitHandle _stopThread = null;
private string _runningThreadName;
private ServiceHost _serviceHost = null;

public FileProcessService()
{
Initialize();
}

protected virtual void Initialize()
{

if (_stopThread == null) _stopThread = new ManualResetEvent(false);
else _stopThread.Reset();


Thread t = new Thread(new ThreadStart(StartService));

t.Name = BASE_THREAD_NAME;

_runningThreadName = t.Name;

t.Start();
}

protected override void OnStart(string[] args)
{
base.OnStart(args);

}

protected override void OnStop()
{
base.OnStop();
StopService();
_serviceHost.Close();
}

protected override void OnShutdown()
{
base.OnShutdown();
}

protected void StartService()
{
_serviceHost = new ServiceHost(typeof(FileLoggingService));


_serviceHost.Open();


while (!_stopThread.WaitOne(500, true))
{
FileProcess.Instance.ProcessFiles(); //This class would be a singleton class responsible for processing the files.
if (_serviceHost.State == CommunicationState.Faulted)
{
_serviceHost.Abort();
_serviceHost = null;
_serviceHost = new ServiceHost(typeof(FileLoggingService));
_serviceHost.Open();
}
}

_serviceHost.Close();

}



public void StopService()
{
_stopThread.Set();
FileProcess.Instance.StopProcessing();
}

private void InitializeComponent()
{
this.ServiceName = "FileProcessor";

}
}
}

admin

Date:: Dec 15, 2009

Time:: 10:41

The question looks to be abandoned by the user who asked it. If no action is taken within 2 days, a Quomon Moderator will consider closing the question and distributing the points.

The Quomon Team

Answer this Question

New User

Email:

Upon submission of this form, you will automatically be registered as a Quomon user and we will send your login information to this address

Registered User

Username:

Password:

Forgot Your Password?

Tutorials cannot be submitted until the Answer Discussion is complete.

Submit answers in the Answer Discussion area

Ask a Question

Have a new question? Ask!

You have 100 characters to use



Top Experts

View More

Rank

Expert

Points

1.

nidhi

10354

2.

oracleofDelphi

6493

3.

rcastagna

5596

4.

LAGM

4848

5.

PeterNZ

3487

6.

gonzalo

2840

7.

Mason

2770

8.

jgivoni

2303

9.

xarcus

1820

10.

Anpanman

917

Become an Expert

Register today to share your knowledge with the community and be recognized and rewarded for your contributions.


Register Here




"Psst, Quomon is a great site. Pass it on."     Tell a Friend  |   Link To Us  |   Save to Delicious  |   Digg! Digg it



Language Options

English:

www.quomon.com

Español:

www.quomon.es