• Visitors can check out the Forum FAQ by clicking this link. You have to register before you can post: click the REGISTER link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. View our Forum Privacy Policy.
  • Want to receive the latest contracting news and advice straight to your inbox? Sign up to the ContractorUK newsletter here. Every sign up will also be entered into a draw to WIN £100 Amazon vouchers!
Collapse

You are not logged in or you do not have permission to access this page. This could be due to one of several reasons:

  • You are not logged in. If you are already registered, fill in the form below to log in, or follow the "Sign Up" link to register a new account.
  • You may not have sufficient privileges to access this page. Are you trying to edit someone else's post, access administrative features or some other privileged system?
  • If you are trying to post, the administrator may have disabled your account, or it may be awaiting activation.

Previously on "Windows Service Timed Action"

Collapse

  • SimonMac
    replied
    Originally posted by suityou01 View Post
    You're welcome. Can you let the others now?
    If your code was as full of typos as your posts we might have found the root cause to your problems

    Leave a comment:


  • stek
    replied
    Originally posted by Sysman View Post
    Aaargh! Hard coding filenames is never a good thing.



    Off topic I know, but this is the nightmare that is bash login:



    Bash Initialisation files
    I was referring to simple shell scripts really, where the PATH variable isn't present in crons environment, so for example the script under cron won't be able to find 'find' or 'sleep' for example. I know windows has variable set so I was wondering if a service running under Windows would have access to them..

    Leave a comment:


  • SimonMac
    replied
    Originally posted by Sysman View Post
    Aaargh! Hard coding filenames is never a good thing.
    I hard code all Environment Variables from the same reference file, and then change this file for each environment leaving the main code the same for all tiers

    Leave a comment:


  • Sysman
    replied
    Originally posted by stek View Post
    In Unixland when we run something like this under cron, we have to be mindful of the the environment the process runs will run under; for example I always use absolute paths since I can't assume the environment when running detached has the same paths/env as the environment I'm testing it under.
    Aaargh! Hard coding filenames is never a good thing.

    Originally posted by stek View Post
    Could it be similar in Windows?
    Off topic I know, but this is the nightmare that is bash login:



    Bash Initialisation files

    Leave a comment:


  • suityou01
    replied
    Originally posted by d000hg View Post
    So because you were sloppy, you had a problem with soSex.dll?
    Not quite. Because I was sloppy, sosex came to my rescue.

    Lesson learned, .net contains unmanaged code and will not always follow your prescribed error handling path.

    Leave a comment:


  • d000hg
    replied
    So because you were sloppy, you had a problem with soSex.dll?

    Leave a comment:


  • TestMangler
    replied
    Originally posted by suityou01 View Post
    You're welcome. Can you let the others now?
    No, but I'll let them know if you want ?

    Leave a comment:


  • suityou01
    replied
    Originally posted by TestMangler View Post
    Well, that's a relief ! I'm going to be able to concentrate on my own work now. Thanks Suity
    You're welcome. Can you let the others now?

    Leave a comment:


  • TestMangler
    replied
    Well, that's a relief ! I'm going to be able to concentrate on my own work now. Thanks Suity

    Leave a comment:


  • suityou01
    replied
    Originally posted by d000hg View Post
    Oh go on then.
    Thanks.

    OK so the actual error was an access violation. This was occuring in Managed Code.

    Code:
    try
    {
    
        callToWebService(parameter1, parameter2,auditAccount, parameter3); //Breaks here
    
    }
    catch (Exception ex)
    {
        LogEvent("Summat 'appened",9999);
    }
    The exception occured outside the framework in unmanaged code, wrapped by the framework and hence the catch block never got executed.

    Because of my sloppy, but valid, code the web service call was implemented thus :

    Code:
        callToWebService(parameter1, parameter2,System.Security.Principal.WindowsIdentity.GetCurrent().Name, parameter3);
    Stepping this through in WinDB (and IDL as I couldn't get integrated code debugging working ) You can clearly see it try and evaluate the 3rd parameter first (as expected). This line then jumps into building the proxy stub generated by the IDE when you include the web reference. The parameter, when run as a windows service only, evaluates to null. The web service call never actually happens, rather it gets to the point of making the call, then throws a structured windows exception, which then jumps in the debugger to :

    ntdll.kiuserexceptiondispatcher

    The thread in mscorlib collapses without trace, and windows bubbles the structured exception up until it hits service manager, which then dumps it to the event log with a rather vague message.

    By splitting the code out into two calls, thus :

    Code:
       string accountName  =System.Security.Principal.WindowsIdentity.GetCurrent().Name;
       callToWebService(parameter1, parameter2,accountName, parameter3);
    As I said before, the original code worked fine as a console app, but presented this problem when running as a windows service.

    The only way to catch this behaviour was by attaching a debugger to the compiled image using WinDB and SOSex.dll.

    Much fun had stepping through IDL and assembly, chasing down hex addresses as the integrated code view didn't work

    Leave a comment:


  • d000hg
    replied
    Oh go on then.

    Leave a comment:


  • suityou01
    replied
    Originally posted by TestMangler View Post
    You got someone else to re-write your code ??
    No one awesome enough.

    Leave a comment:


  • TestMangler
    replied
    Originally posted by suityou01 View Post
    Really.

    Finally pinned this sucker down. Anyone care to know the resolution??
    You got someone else to re-write your code ??

    Leave a comment:


  • suityou01
    replied
    Originally posted by DimPrawn View Post
    Incompetence personified!
    Really.

    Finally pinned this sucker down. Anyone care to know the resolution??

    Leave a comment:


  • DimPrawn
    replied
    Incompetence personified!

    Leave a comment:

Working...
X