thank to everyone who paid attention.
I managed to find the solution to this problem.
In the service installer I had chosen the Network Service for the Log on
account. So, what I needed to do was just give the appropriate permission
to my certificate which in my case it was Network Service account.
You can assign right permission through below steps:
Open mmc -> Add/Remove snap-ins -> Certificate -> Add -> In my case
Local Machine -> Folder where your certificate is -> Right click on
certificate -> All Tasks -> Manage Private Keys
-> and the rest of the permission assigning steps.
Edit: You should know that if you are using
X509Certificate2 class to import your certificate to the store. If your
situation is like that your windows service logs on as Network Service
remember that this flag
should be set to allow the certificate private key accessible over the
Network Service user.
I hope it help