The .NET security model throws security errors whenever a .NET exe is run from a file share. The error does not appear when ran from a local drive. Does anyone know of a way around this without requiring the code to be signed?
问题:
回答1:
Using CasPol to Fully Trust a Share
more answers here:
Why does my .NET application crash when run from a network drive?
回答2:
Use caspol.exe to assign that file share enough permissions to run your program.
回答3:
You might be able to build the application against .net 3.5 sp1 this version was removing this security setting.
回答4:
To get around this we ended up wrapping our .exe in a batch file. The batch file copied the .exe to the local drive and ran it from there. I'm sure there is a less hacky way though!
回答5:
Make sure that .Net 3.5SP1 is installed on the machine which is running the software. This version removes the security restriction on apps running from a file share. It allows them to run at full trust vs. the previous model which put them in a restricted environment.
Here's a link to Vance's blog article on the subject
- http://blogs.msdn.com/vancem/archive/2008/08/13/net-framework-3-5-sp1-allows-managed-code-to-be-launched-from-a-network-share.aspx
回答6:
You can use the .Net configuration wizard to loosen security for the specific Assembly and it's location, this in turn can be deployed through a group policy. You can also use caspol as earlier mentioned.
The other alternative is to use code access security. There is a brilliant MSDN article here explaining it.
The third alternative is using clickonce deployment, however this still creates a local instance of the assembly when executed.
回答7:
You can use Click Once deployment to deploy your application from a file share.