Ok, if you have admin rights, you can change the way .NET runs, but I've dealt with a similar problem and one thing I come up against is: .NET security doesn't allow execution of remote code on a computer (by default). what I mean by that is if:
Server (S) has a CIFS file share \\S\MyProg.exe
then clients 1-n (C1-Cn) cannot simply execute that right off the server because of .NET security settings.
I understand the reasoning behind this, but it's somewhat frustrating when you're trying to store a library somewhere. Plus as long as it's not .NET you can execute the remote assembly as if it's on the local machine.
My solution was to go back in tech:
Source: execute.bat
@echo off
::: execute - calls a remote executable without DLL dependencies etc - will need modification if
::: other files need to be downloaded.
::: syntax: execute $remote
::: remote - a remote exe to run locally
if "%~1"=="" findstr "^:::" "%~f0"&GOTO:EOF
copy \\s\%1 %TEMP\%1
call %TEMP%\%1
del %TEMP%\%1
K so that's to get around the executing problem on remote machines, but presumably you also wish to initiate the app from the server (S). I'd build a listener for the clients... it can either be a full-fledged port listener, or something as simple as a CRON job that looks for a file and calls it if it's found. This file can then contain instructions as to which remote files to run locally. You could even create a local lock file to prevent multiple execution, or dual execution of long processes.