|
I have a windows service starting and running fine on Windows 7, but when I try to start it on Windows Server 2003 after 30 seconds a message pops up, saying "windows service did not respond to the start or control request in a timely fashion". Tried to start it as local service, local system or local admin to no avail.
Don't know if it is important, but it is c# code an uses enterprise library 5.
The OnStart()-Methode only logs through entlib and starts a timer, should only take milliseconds and it work on win7.
Any idea??
|
|
|
|
|
The code is crashing for some reason. Look in the Application Event Log for any clues and you'll probably have to instrument your code to log everything that goes on during OnStart.
|
|
|
|
|
No, it's not, the application log only contains one entry with error code 1053. The program can also be started in console mode by running from a command line with an additional parameter: program starts, runs, finishes, not error.
|
|
|
|
|
Again, instrument your code so that it logs what it's doing and what values are being used at key points.
|
|
|
|
|
It appears as if just that is not happening, I mean the code is not called at all. First thing OnStart() does is write a log entry. Works fine on win 7, does not happen on the server machine. Made the app.config invalid, application log say so, app.config correct, no exception in app log.
|
|
|
|
|
You haven't posted the code in OnStart so there really isn't anything anyone can tell you. There simply isn't enough information to work with.
|
|
|
|
|
Here it is:
protected override void OnStart(string[] args)
{
}
Please notice, everything is commented out, on startup I get the error 1053.
I don't see anything wrong with the code, since it runs fine on other machines.
|
|
|
|
|
Still not enough information. What's the constructor of this class look like?? What happens in OnStop that you're calling?
There are various things that can go wrong with this. Even a difference between compiling Debug instead of Release.
Try this[^] list of issues.
|
|
|
|
|
Have you checked whether the enterprise library 5 and the correct .NET Framework version are installed on the target machines? Does it perhaps use an advanced feature/function that is not available under Windows Server 2003?
The good thing about pessimism is, that you are always either right or pleasently surprised.
|
|
|
|
|
I can run the program in a console mode by attaching a command line parameter; it starts, runs, finishes without error. It feels more like a windows setup problem.
|
|
|
|
|
I might be misunderstanding your question but the OnStart method must exit within a limited period of time. I recall it was about a minute or so otherwise you get that error message. Are you sure that what you're doing really is completing in time. Like Dave K suggests, you need messages to help trace where it might be snagging.
If there is one thing more dangerous than getting between a bear and her cubs it's getting between my wife and her chocolate.
|
|
|
|
|
|
|
juliogyn wrote: What should i do ? You could ask the author of the article.
Use the best guess
|
|
|
|
|
Raw text does not have any formatting - it's just a string of characters. In order to paste data into Word, you can try copying it with formatting information using Clipboard.SetText with a TextDataFormat parameter: http://msdn.microsoft.com/en-us/library/tbfb3z56.aspx[^] - but if you are copying to the clipboard to transfer data, it's generally a poor idea - any app which messed with my clipboard like that woudl be uninstalled post haste.
There are generally better ways to transfer data between apps, including into word, depending on exactly what you are trying to achieve.
This message is manufactured from fully recyclable noughts and ones. To recycle this message, please separate into two tidy piles, and take them to your nearest local recycling centre.
Please note that in some areas noughts are always replaced with zeros by law, and many facilities cannot recycle zeroes - in this case, please bury them in your back garden and water frequently.
|
|
|
|
|
I'm trying copy the text in richtextbox and Image for Word document.
|
|
|
|
|
How are you doing it?
This message is manufactured from fully recyclable noughts and ones. To recycle this message, please separate into two tidy piles, and take them to your nearest local recycling centre.
Please note that in some areas noughts are always replaced with zeros by law, and many facilities cannot recycle zeroes - in this case, please bury them in your back garden and water frequently.
|
|
|
|
|
what you suggest, to create the word document while retaining the formatting? I have one Image componente and one Richtextbox.
|
|
|
|
|
I did ask how you are doing it at the moment...
This message is manufactured from fully recyclable noughts and ones. To recycle this message, please separate into two tidy piles, and take them to your nearest local recycling centre.
Please note that in some areas noughts are always replaced with zeros by law, and many facilities cannot recycle zeroes - in this case, please bury them in your back garden and water frequently.
|
|
|
|
|
I resolved problem using richtextbox.Copy and range.Paste(); tnks for help
|
|
|
|
|
Hi - I am trying to find the best conditional statement to use, to display a feature on web site.
I have a field from database which has a value 0,1 or 2. And based on what value this product has display different pieces of information.
I am using a case statement:
switch (value)
case 2:
value="message 1";
break;
case 1:
value="message 2";
break;
default:
break;
return (value)
Is there a better and more efficient way to write this statement?
Thanks!
|
|
|
|
|
Why not put that in the database? Have a Message table and JOIN to it.
|
|
|
|
|
Try:
private string makeMessage(int value)
{
switch (value)
{
case 0:
return "message: input is #0";
case 1:
return "message: input is #1";
case 2:
return "message: input is #2";
default:
Exception iEX = new Exception("MakeMessage: Input out of range");
MessageBox.Show(iEX.Message);
return "Kablooey !";
}
} And, then test it like this:
string x = makeMessage(0);
string y = makeMessage(1);
string z = makeMessage(2);
string makeAnError = makeMessage(5); More efficient" ? My understanding is that a switch-case block that uses an ordinal sequence of regularly incremented integer indexes is compiled into IL with maximum efficiency to essentially be a series of jump-table calls.
Your code will not compile as is because of a potential type-mismatch: so in the sense it can't possibly work now, as is, yes, it could be better
Assuming the variable 'value is an integer:
If 'value is an integer, 1, or 2, then a string is returned, but if not, then the compiler "sees" that potentially an integer value could be returned, which is why it won't compile: you "promised" to return a string.
The extent of input validation you may need/want to implement, imho, will depend on the certainty you have that that code will always be called with an integer argument.
If you are absolutely certain this code is always called with its argument taken from a database field which is guaranteed to contain an integer whose value is #0, #1, or #2, sure, your code is fine ... if you add in something to handle the case where the input is #0.
~
“This isn't right; this isn't even wrong." Wolfgang Pauli, commenting on a physics paper submitted for a journal
modified 13-Aug-13 20:42pm.
|
|
|
|
|
if it is really a number that has a fixed message attached you could put it in an array, list or dictionary. in that case you could do something like:
string [] msgarray = {"message 1", "message 2", "message 3"};
public string ShowMessage(int msgindex){
return msgarray[msgindex];
}
the switch is not wrong, nor is this method "better" per se, but it might give you another look on things.
Hope this helps.
|
|
|
|
|
This is not a criticism of the general idea in your code example above, but your example does not match the behavior in the OP's original 'switch statement. It would also be far less efficient than a case/switch block.
There are many ways the OP's desired outcome could be implemented, but the OP's code is clearly flawed: it will not compile as is because of potential type-mismatch between the return type expected (string), and the input parameter value being: !=1 && !=2
Even if (the most unlikely hypothesis I can imagine) the OP had made the variable 'value of Type 'dynamic: the code would not compile: "A switch expression or case label must be a bool, char, string, integral, enum, or corresponding nullable type."
~
“This isn't right; this isn't even wrong." Wolfgang Pauli, commenting on a physics paper submitted for a journal
|
|
|
|