Originally posted by suityou01
View Post
- 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!
Reply to: Windows Service Timed Action
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.
Logging in...
Previously on "Windows Service Timed Action"
Collapse
-
If your code was as full of typos as your posts we might have found the root cause to your problems
-
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..Originally posted by Sysman View PostAaargh! Hard coding filenames is never a good thing.
Off topic I know, but this is the nightmare that is bash login:

Bash Initialisation files
Leave a comment:
-
Aaargh! Hard coding filenames is never a good thing.Originally posted by stek View PostIn 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.
Off topic I know, but this is the nightmare that is bash login:Originally posted by stek View PostCould it be similar in Windows?

Bash Initialisation files
Leave a comment:
-
Not quite. Because I was sloppy, sosex came to my rescue.Originally posted by d000hg View PostSo because you were sloppy, you had a problem with soSex.dll?
Lesson learned, .net contains unmanaged code and will not always follow your prescribed error handling path.
Leave a comment:
-
No, but I'll let them know if you want ?Originally posted by suityou01 View PostYou're welcome. Can you let the others now?
Leave a comment:
-
Well, that's a relief ! I'm going to be able to concentrate on my own work now. Thanks Suity
Leave a comment:
-
Thanks.Originally posted by d000hg View PostOh go on then.
OK so the actual error was an access violation. This was occuring in Managed Code.
The exception occured outside the framework in unmanaged code, wrapped by the framework and hence the catch block never got executed.Code:try { callToWebService(parameter1, parameter2,auditAccount, parameter3); //Breaks here } catch (Exception ex) { LogEvent("Summat 'appened",9999); }
Because of my sloppy, but valid, code the web service call was implemented thus :
Stepping this through in WinDB (and IDL as I couldn't get integrated code debugging workingCode:callToWebService(parameter1, parameter2,System.Security.Principal.WindowsIdentity.GetCurrent().Name, parameter3);
) 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 :
As I said before, the original code worked fine as a console app, but presented this problem when running as a windows service.Code:string accountName =System.Security.Principal.WindowsIdentity.GetCurrent().Name; callToWebService(parameter1, parameter2,accountName, parameter3);
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:
-
You got someone else to re-write your code ??Originally posted by suityou01 View PostReally.
Finally pinned this sucker down. Anyone care to know the resolution??
Leave a comment:
- Home
- News & Features
- First Timers
- IR35 / S660 / BN66
- Employee Benefit Trusts
- Agency Workers Regulations
- MSC Legislation
- Limited Companies
- Dividends
- Umbrella Company
- VAT / Flat Rate VAT
- Job News & Guides
- Money News & Guides
- Guide to Contracts
- Successful Contracting
- Contracting Overseas
- Contractor Calculators
- MVL
- Contractor Expenses
Advertisers

Leave a comment: