He desarrollado una aplicación .NET 3.0, que se implementa con clickonce.¿Por qué mi aplicación .net requiere plena confianza?
Me gustaría pasar de la confianza total a la confianza parcial para facilitar la implementación.
He probado la función "Calcular permisos" en la pestaña "Seguridad" de mi proyecto en Visual Studio, y la respuesta es muy clara:
---------------------------
Microsoft Visual Studio
---------------------------
This application requires full trust to run correctly.
Sin embargo, no hemos sido capaces de averiguar por qué se requiere plena confianza. He tratado de cambiar la configuración de seguridad de "confianza parcial", pero la aplicación plantea una SecurityException inmediatamente después de la puesta en marcha:
System.Security.SecurityException {"Request failed.", Action= "System.Security.Permissions.SecurityAction.LinkDemand"
at MyNameSpace.Program.Main(String[] args)
at System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
at System.AppDomain.nExecuteAssembly(Assembly assembly, String[] args)
at System.Runtime.Hosting.ManifestRunner.Run(Boolean checkAptModel)
at System.Runtime.Hosting.ManifestRunner.ExecuteAsAssembly()
at System.Runtime.Hosting.ApplicationActivator.CreateInstance(ActivationContext activationContext, String[] activationCustomData)
at System.Runtime.Hosting.ApplicationActivator.CreateInstance(ActivationContext activationContext)
at System.Activator.CreateInstance(ActivationContext activationContext)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssemblyDebugInZone()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.runTryCode(Object userData)
at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
Mi software probablemente no necesite plena confianza (que sólo se conectan a un servidor web mediante https y acceder al sistema de archivos solo cuando el usuario lo solicita, para fines de importación/exportación)
¿Cómo puedo averiguar por qué mi aplicación requiere plena confianza?
¿A qué llama en su método principal? Algo que está llamando allí está causando el problema. – leppie
Nada. este es el constructor principal .net predeterminado para una aplicación Winform, IE Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault (falso); Application.Run (nuevo MyForm()); y nada más. Creo que el problema ocurre antes, es decir, cuando el clr carga mi ensamblaje – Brann