How frequently is your timer running? It might be simpler to create a console application to check the queue and send the mail, and then use the Windows Task Scheduler to schedule it to run every n minutes.
"These people looked deep within my soul and assigned me a number based on the order in which I joined." - Homer
I agree 100%. Now I know why you guys suggested just writing a console app first.
But I made it past the painful part, and figured I would just finish the windows service.
I haven't really set the timers yet. I have 2 timers, 1 check timer and 1 job timer. I figure the check timer would run twice a day and book jobs for the job timer, the job timer would only run if jobs are present.
Would of been much easier to just write a console app and schedule each job individually.
I'm almost done, just need to start and stop the send message thread if I stop the service while jobs are running.
I choose the windows service because I run the website on a server core with minimum GUI. My preference was server core with no GUI, but I needed the shell window in order to use FFMPEG, which is a console app. So the console app left a bad taste, and I opted for writing something for use in the future.
Plus I don't get the eventlog thing, Am I using this right here? The MyServer, Should I replace that with my machine name?
eventLog1 = New System.Diagnostics.EventLog()
If (Not System.Diagnostics.EventLog.SourceExists(eventSourceName, "MyServer")) Then
eventLog1.Source = eventSourceName
eventLog1.Log = logName
eventLog1.WriteEntry("Service has installed successfully", EventLogEntryType.Information, 1)
So I guess in a service, you can't display a message box. Not sure about the console line, I just need to be able to see some values so I can at least get the service installed and running.
About event ID's, I assigned an ID of 1 for creating the install, but I get this message, any help would be appreciated.
The description for Event ID 1 from source smtpMessenger cannot be found. Either the component that raises this event is not installed on your local computer or the installation is corrupted. You can install or repair the component on the local computer.
Do I have to create a description file for each ID I assign to an event?
1. Service can not interact with UI (messages) by default, but it can be changed. However the better way is to use some helper that reads the state/configuration of a running server and adjust it as needed...
2. I didn't understood the other parts - are you trying to create a self installing service?
I'm not questioning your powers of observation; I'm merely remarking upon the paradox of asking a masked man who he is. (V)
config files - app.config or other file
of course, they can contain minimal info, like the connection to the database and have the rest of the config data stored as key:value pairs in a separate table
Then usually one or more helper programs - one to set up/maintain the config info (especially if all/some is encrypted), and a 'tray helper' program that displays status, allows control of the service etc
A service Im writing at the moment also has
a) an in memory database for statistics (in addition to using performance counters etc)
b) an in-built telnet & http server to inspect values (and maybe control some aspects of the service)
if you wanted to cut out writing the 'boilerplate' yourself, look at something like cinchoo http://cinchoo.com/category/application-host/?orderby=ID&order=ASC[^] - my only bugbear with it is its not open source - there are other 'service frameworks' out there iirc - while writing a service from scratch once is 'useful', the real work is the service 'tasks', so using a pre-built framework allows you to focus on that
In this way, I could have the process on server "CAT" run Services "Scratch" and "Purr", while the process on server "DOG" could run Services "Wag" and "Bark" and moving Services from one server to another was simple. All servers had exactly the same code deployed.
Be careful with that file because if you make it ill formed the application will not load and figuring out that problem is difficult.
I guess the windows app could also start and stop the service as well
A windows service is a windows service, so I am not exactly sure what you mean.
It is possible to structure the build such that one can have a command line executable and a windows service but you probably don't want to try that for your first service.
You might want to also looking into a logging API. Helps in figuring out window service errors.
Well it dawned on me that I already have a configuration file in the web application that I can adsorb for the database connector string and website name. So I can put the service in the web application. Took me awhile to figure that out.
Perhaps the web application can start the web service, and the service will wait for the date and time to start doing its thing via timer.
So on to my first Windows Service. It's new to me and very frustrating. I just got the base code to work, the framework, so now it
Creates an Event Log
Writes to the Event Log
Connects to the service controller
Writes the event log registry entry, and message id file to connect to.
WOW, that was a mind bender. There's help out there, but it's so generic.
Now I know why many said write a console app.
Well now I can go on to writing the job code, and then figure out how to write an id system dll for the event log id's and messages, and register that file.
So I'm going to try reading my config file in the web app first, and see if I can read it, if so I'm on my way to more frustration.
One thing to be aware of. You're doing a case sensitive comparison of a string there. What happens if the case doesn't match what you're testing for (hint, you won't trigger any of your enable conditions)?
i have a problem for making rfid program with socket in c#.
i try this code :
socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP);
IPAddress ip = Dns.GetHostAddresses(ipLoc);
IPEndPoint ep = new IPEndPoint(ip,23);
We are now in the planning stage of the next web based project using C#, MVC 5 and Entity framework 6. We are discussing about framing the project using the Repository pattern. We already have the full database ready. So, it is going to be Database first.
Now, my question : Is it feasible / worth using Repository pattern with database first approach? I got this doubt because, many sources and examples found in internet are Code first approach. If it is possible can you please provide me any advice or online/article sources to refer. Thanks.
I welcome any ideas or suggestions on Repository pattern.
As Pete O'Hanlon said, you can. We use the Repository pattern + Unit of Work on the project I'm on right now. While we do use Code First, there is no reason it can't apply to Database First as well. Someone can correct me if I'm wrong, but I don't think the purpose of the Repository pattern was designed specifically for Code First. One advantage of using Repo is testing, another is dependency injection. It's simple to test using a Repository, from what I can tell here.
How do I compare two tables and get the difference?
Dim dtBenefitsCurrent As New DataTable
dtBenefitsCurrent = objDB.GetPlanBenefits(groupID, planID, SequenceNumber)
Dim dtBenefitsPreviousYear As New DataTable
dtBenefitsPreviousYear = objDB.GetPlanBenefits(PreviousgroupID, PreviousplanID, PreviousSequenceNumber)
Dim dyDifference ????