i have developed c# gui application on server computer, and now i want to run it from client.
access to aplication is via mapped directory.
but, when i run it, next error occure:
> See the end of this message for
> details on invoking just-in-time
> (JIT) debugging instead of this dialog
> box.
>
> ************** Exception Text ************** System.Security.SecurityException:
> That assembly does not allow partially
> trusted callers. at
> System.Security.CodeAccessSecurityEngine.ThrowSecurityException(Assembly
> asm, PermissionSet granted,
> PermissionSet refused,
> RuntimeMethodHandle rmh,
> SecurityAction action, Object demand,
> IPermission permThatFailed) at
> Yobs01.Form1.button1_Click(Object
> sender, EventArgs e) at
> System.Windows.Forms.Control.OnClick(EventArgs
> e) at
> System.Windows.Forms.Button.OnClick(EventArgs
> e) at
> System.Windows.Forms.Button.OnMouseUp(MouseEventArgs
> mevent) at
> System.Windows.Forms.Control.WmMouseUp(Message&
> m, MouseButtons button, Int32 clicks)
> at
> System.Windows.Forms.Control.WndProc(Message&
> m) at
> System.Windows.Forms.ButtonBase.WndProc(Message&
> m) at
> System.Windows.Forms.Button.WndProc(Message&
> m) at
> System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message&
> m) at
> System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message&
> m) at
> System.Windows.Forms.NativeWindow.Callback(IntPtr
> hWnd, Int32 msg, IntPtr wparam, IntPtr
> lparam) The action that failed was:
> LinkDemand The Zone of the assembly
> that failed was: Intranet
>
>
> ************** Loaded Assemblies ************** mscorlib
> Assembly Version: 2.0.0.0
> Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
> CodeBase: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
> ---------------------------------------- Yobs01
> Assembly Version: 1.0.0.0
> Win32 Version: 1.0.0.0
> CodeBase: file:///Z:/Debug/Yobs01.exe
> ---------------------------------------- System.Windows.Forms
> Assembly Version: 2.0.0.0
> Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
> CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
> ---------------------------------------- System
> Assembly Version: 2.0.0.0
> Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
> CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
> ---------------------------------------- System.Drawing
> Assembly Version: 2.0.0.0
> Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
> CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
> ---------------------------------------- System.Data.SqlServerCe
> Assembly Version: 3.5.1.0
> Win32 Version: 3.5.5692.0
> CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Data.SqlServerCe/3.5.1.0__89845dcd8080cc91/System.Data.SqlServerCe.dll
> ---------------------------------------- System.Data
> Assembly Version: 2.0.0.0
> Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400开发者_JAVA技巧)
> CodeBase: file:///C:/WINDOWS/assembly/GAC_32/System.Data/2.0.0.0__b77a5c561934e089/System.Data.dll
> ---------------------------------------- System.Transactions
> Assembly Version: 2.0.0.0
> Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
> CodeBase: file:///C:/WINDOWS/assembly/GAC_32/System.Transactions/2.0.0.0__b77a5c561934e089/System.Transactions.dll
> ----------------------------------------
>
> ************** JIT Debugging ************** To enable just-in-time (JIT) debugging, the .config file for
> this application or computer
> (machine.config) must have the
> jitDebugging value set in the
> system.windows.forms section. The
> application must also be compiled with
> debugging enabled.
>
> For example:
>
> <configuration>
> <system.windows.forms jitDebugging="true" />
> </configuration>
>
> When JIT debugging is enabled, any
> unhandled exception will be sent to
> the JIT debugger registered on the
> computer rather than be handled by
> this dialog box.
i did added next line in Assembly.cs
[assembly: AllowPartiallyTrustedCallers]
but it did not help, and error is still there.
it's in dotnet 3.5 framework.
can you help me how to solve this problem?
thank you in advance!
aha i did it!!!
you have to run ....
caspol -m -ag 1 -url "file://\server\mydir*" FullTrust -exclusive on
from client machine, not from server!
It is not your assembly which has to be marked with this attribute, it is the assembly you are calling.
Essentially this exception is telling you that the assembly you are calling does not allow strangers to call it. And your assembly is a stranger. To make it not a stranger you need to to grant it full trust, or apply the AllowPartialCallers attribute to the referenced assembly (if it is your assembly)
精彩评论