<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.dotnetzone.gr:443/cs/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>.NET Framework</title><link>https://www.dotnetzone.gr:443/cs/forums/14/ShowForum.aspx</link><description>Θέματα για threading, remoting, reflection, exception handling, security, regex κλπ.</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Απ: Τερματισμός υπηρεσίας</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/55493.aspx</link><pubDate>Fri, 27 Nov 2009 01:20:41 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:55493</guid><dc:creator>anjelinio</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/55493.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=55493</wfw:commentRss><description>&lt;P&gt;Θα ήταν νομίζω χρήσιμο για 'σένα αν μπορούσες να κάνεις debug το service σου, για να δείς που ακριβώς σκάει το Exception. Ίσως απο 'κεί οδηγηθείς σε συμπεράσματα, γιατί το log σου δε λέει και πολλά - &lt;EM&gt;ή μάλλον πολλά λέει, λίγα χρήσιμα όμως&lt;/EM&gt; :D&lt;/P&gt;
&lt;P&gt;Αν ψάξεις στα forums του DNZ, σίγουρα θα βρείς κάποιο παλιό post ( &lt;EM&gt;το είχα διαβάσει δηλαδή&lt;/EM&gt; ) που εξηγεί πως μπορείς να κάνεις debug ένα service ( &lt;EM&gt;αν θυμάμαι καλά η λύση ηταν να το τρέξεις ως .. console app&lt;/EM&gt;&amp;nbsp;&lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-2.gif" alt="Big Smile" /&gt; )&lt;/P&gt;</description></item><item><title>Απ: Τερματισμός υπηρεσίας</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/55469.aspx</link><pubDate>Wed, 25 Nov 2009 21:59:50 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:55469</guid><dc:creator>m6s</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/55469.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=55469</wfw:commentRss><description>Θέλω να προσθέσω ότι ναι μέν έκανα και το λάθος να ΄δημιουργώ τοπικά στην συνάρτηση το αντικειμένο proc, και παρόλο ότι το διόρθωσα, το stop δεν δουλεύει σωστά, αλλά το restart της υπηρεσίας πετυχαίνει με....3600 μηνύματα λάθους στο log.&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;"Ελαττωματική εφαρμογή MyDemo Service.exe, έκδοση 1.0.0.0, χρονική σήμανση 0x4b07ea89, ελαττωματική λειτουργική μονάδα KERNEL32.dll, έκδοση 6.0.6002.18005, χρονική σήμανση 0x49e037dd, κωδικός εξαίρεσης 0xe053534f, μετατόπιση σφάλματος 0x0003fbae, αναγνωριστικό διεργασίας 0x%9, χρόνος έναρξης εφαρμογής 0x%10."&lt;/div&gt;</description></item><item><title>Απ: Τερματισμός υπηρεσίας</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/55335.aspx</link><pubDate>Fri, 20 Nov 2009 20:00:16 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:55335</guid><dc:creator>m6s</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/55335.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=55335</wfw:commentRss><description>&lt;span class="Apple-style-span" style="font-family:Tahoma, Arial, Helvetica;font-size:11px;white-space:pre-wrap;"&gt;&lt;div&gt;(κάποιο πρόβλημα είχα με την εισαγωγή κώδικα το περνάω "χύμα", το OnStart() ( Κρατώ πολύ logging, επειδή η java ξεκινάει με ειδικές παραμέτρους που διαβάζονται σε κάποιο xml οπότε γράφω και στο log ) :&lt;/div&gt;string xml2use = string.Empty;
string class2use = string.Empty;
string port2use = ConfigurationManager.AppSettings["PORT"];

eventLog1.WriteEntry("Java");
// TODO: Add code here to start your service.

xml2use = ConfigurationManager.AppSettings["javaXML"];
class2use = ConfigurationManager.AppSettings["javaClass"];
eventLog1.WriteEntry("Java XML used");

ClassPath.ClassPath.Set(System.Configuration.ConfigurationManager.AppSettings, eventLog1);

try {
string stringed = string.Format(@"-Dapp.context=file:{0}\config\{1} -Dhome=. {2} {3}", ConfigurationSettings.AppSettings["JAVA_EXE_DIR"], xml2use, class2use, port2use);

eventLog1.WriteEntry("Java. Parameters to engage :" + stringed);

Process proc = ProcessRun(new Process(), @"java", stringed);
				
if ( proc.Start() ) {
eventLog1.WriteEntry("Java." + class2use + " as process id :" + proc.Id);
}
} catch ( Exception ex ) {
eventLog1.WriteEntry(ex.StackTrace);
eventLog1.WriteEntry(ex.Message);
if ( ex.InnerException != null ) {
eventLog1.WriteEntry(ex.InnerException.Message);
}
}&lt;/span&gt;&lt;div&gt;&lt;font class="Apple-style-span" face="Tahoma, Arial, Helvetica" size="3"&gt;&lt;span class="Apple-style-span" style="font-size:11px;white-space:pre-wrap;"&gt;&lt;br&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font class="Apple-style-span" face="Tahoma, Arial, Helvetica" size="3"&gt;&lt;span class="Apple-style-span" style="font-size:11px;white-space:pre-wrap;"&gt;Το proc είναι που συναντάς στην OnStop()&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font class="Apple-style-span" face="Tahoma, Arial, Helvetica" size="3"&gt;&lt;span class="Apple-style-span" style="font-size:11px;white-space:pre-wrap;"&gt;&lt;br&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;</description></item><item><title>Απ: Τερματισμός υπηρεσίας</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/55307.aspx</link><pubDate>Fri, 20 Nov 2009 04:24:38 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:55307</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/55307.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=55307</wfw:commentRss><description>Και ο κώδικας με τον οποίο ξεκινάς το Java Process?</description></item><item><title>Τερματισμός υπηρεσίας</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/55161.aspx</link><pubDate>Fri, 13 Nov 2009 19:45:46 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:55161</guid><dc:creator>m6s</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/55161.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=55161</wfw:commentRss><description>Καλημέρα...&lt;br&gt;Υπάρχει μια εφαρμογή που εκκινήται σαν υπηρεσία. Η συγκεκριμένη εφαρμογή, με το OnStart(), ξεκινά ένα εξωτερικό πρόγραμμα ( Java ) με μια κλήση Process.&lt;br&gt;Κρατάω πάντα μια αναφορά στην κλάση τόσο για την εφαρμογή της Java όσο και για την ίδια την υπηρεσία που ξεκίνησε το εξωτερικό πρόγραμα.&lt;br&gt;&lt;br&gt;Όταν σταματώ την υπηρεσία μου λένε τα windows, δεν είναι δυνατό να διακόψουν την υπηρεσία η υπηρεσία δεν επέστρεψε σφάλμα, θα μπορούσε να είναι εσωτερικό σφάλμα των windows ή της υπηρεσίας&lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-7.gif" alt="Tongue Tied" /&gt; Οκ, είναι δικό μου. Αλλά δεν καταλαβαίνω γιατί. &lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-42.gif" alt="Confused" /&gt;Το παράδοξο, αν κάνω δεύτερη προσπάθεια να την σταματήσω, σταματάει η υπηρεσία, χωρίς να τερματίζει και η εφαρμογή της Java, δίνοντας και ένα μήνυμα ότι δεν ήταν δυνατό να διακόψουν την υπηρεσία τα windows!!! Αλλά υπηρεσία τελικά δεν υπάρχει, και η Java συνεχίζει...&lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-52.gif" alt="Wilted Flower" /&gt;&lt;br&gt;Και ολίγο κώδικας:&lt;br&gt;&lt;table border="0" cellpadding="0" cellspacing="0" width="100%"&gt;&lt;tr style="vertical-align:top;line-height:normal;"&gt;&lt;td style="width:40px;text-align:right;"&gt;&lt;pre style="margin:0px;padding:2px;font-family:courier new;font-size:11px;color:gray;"&gt;1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 &lt;/pre&gt;&lt;/td&gt;&lt;td&gt;&lt;pre style="margin:0px;padding:2px 2px 2px 8px;"&gt;&lt;span style="color:Black;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;protected&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;override&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;void&lt;/span&gt; OnStop() {
			&lt;span style="color:Green;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;// TODO: Add code here to perform any tear-down necessary to stop your service.&lt;/span&gt;
			eventLog1.WriteEntry(&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"Stopping.Service...."&lt;/span&gt;);
			proc.Close();
			&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;if&lt;/span&gt; ( !proc.HasExited ) {
				proc.Kill();
				eventLog1.WriteEntry(&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"Killed.Java"&lt;/span&gt;);
			}&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;else&lt;/span&gt;
				eventLog1.WriteEntry(&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"Stoped.Java"&lt;/span&gt;);
			eventLog1.WriteEntry(&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"Service shell. Terminating..."&lt;/span&gt;);
&lt;span style="color:Green;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;//Αυτό είναι μια επιπλέον ενέργεια που σκέφτηκα...&lt;/span&gt;
			IEnumerator itr &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; serviceProcess.Modules.GetEnumerator();
			&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;while&lt;/span&gt; ( itr.MoveNext() ) {
				( (Process) itr.Current ).Kill();
			}
			eventLog1.WriteEntry(&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"Service shell. Terminated"&lt;/span&gt;);
		}&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;</description></item></channel></rss>