none
Metoda Substring(proměnná) způsobí nefunkčnost Windows služby

    Dotaz

  • Ahoj,
     
    jsem začátečník a moc se trápím s Windows službou, která má běžet pod LocalSystem účtem. Kompilace proběhne v pořádku, stejně tak instalace služby. Ale při pokusu o její spuštění se prostě nespustí (chyba je error 1035 : "service did not respond to start or control request in timely fashion"...).
     
    Metodou pokus-omyl jsem zjistil, že vadí ten poslední řádek kódu:
    ...
    namespace MyService
    {
        public partial class MyService : ServiceBase
        {
           static string strFullDomainName = strHostDomainName.Substring(strHostDomainName.IndexOf(strDomainName, System.StringComparison.CurrentCultureIgnoreCase));
    ...
    Konkrétně vadí to, co používám jako parametr pro metodu Substring().
    Vyzkoušel jsem to i jinak - rozepast do dvou řádků:
    ...
    static Int32 intIndexOf = Convert.ToInt32(strHostDomainName.IndexOf(strDomainName, System.StringComparison.CurrentCultureIgnoreCase));
    static string sFDN = strHostDomainName.Substring(intIndexOf);
    ...
    Ale marně... jakmile je jako parametr v Substring() proměnná, tak služba nenastartuje.
    Když tam dám konstantu, tak je to v pohodě. Ale konstantu nemůžu použít, protože hodnotu indexu substringu potřebuji vypočítávat a pokaždé je jiná.
    Nevíte, prosím, co s tím? Už mi z toho hrabe...
    Díky za pomoc.
    Slávek
    čtvrtek 16. června 2011 20:29

Odpovědi

  • Kde plníte tu proměnnou/field strDomainName (popř. strHostDomainName)? Tipnul bych si, že Vám to ve skutečnosti padá na NullReferenceException.

    Musíte si najít .NET výjimku (nejspíš v Application event-logu), pole toho poznáte, kde je problém.

    BTW: Maďarská notace se v .NET nenosí.


    Robert Haken, Microsoft MVP ASP/ASP.NET, HAVIT, s.r.o., www.havit.cz, http://knowledge-base.havit.cz
    pátek 24. června 2011 7:54
    Moderátor

Všechny reakce

  • Kde plníte tu proměnnou/field strDomainName (popř. strHostDomainName)? Tipnul bych si, že Vám to ve skutečnosti padá na NullReferenceException.

    Musíte si najít .NET výjimku (nejspíš v Application event-logu), pole toho poznáte, kde je problém.

    BTW: Maďarská notace se v .NET nenosí.


    Robert Haken, Microsoft MVP ASP/ASP.NET, HAVIT, s.r.o., www.havit.cz, http://knowledge-base.havit.cz
    pátek 24. června 2011 7:54
    Moderátor
  • Projdu ty logy, jestli tam něco bude a díky za upozornění na tu maďarskou notaci (přiznám se, že jsem si to musel najít na netu :-)

    pondělí 27. června 2011 13:42