2010-11-10 5 views
2

J'avais développé un portail sur Asp.net mvc framework.J'avais hébergé ce site à l'hébergement de godaddy. J'ai eu un gros problème sur l'intégration de tiers dll c'est-à-dire NPOI (excel writer dll) .Il dispaly erreur suivante.NPOI dll (tierce partie excel writer dll) .... System.Security.SecurityException: Cet assemblage ne permet pas aux appelants partiellement de confiance

Exception de sécurité

**Description**: *The application attempted to perform an operation not allowed by the security policy. To grant this application the required permission please contact your system administrator or change the application's trust level in the configuration file.* 

**Exception Detail*s**:* System.Security.SecurityException: That assembly does not allow partially trusted callers. 

    **Source Error:** 

    *An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.* 

Stack Trace:

[SecurityException: That assembly does not allow partially trusted callers.] 
    ETravel.Web.Modules.Travel.Controllers.Admin.ReportController.TravelTaxList() in ReportController.cs:853 
    lambda_method(ExecutionScope , ControllerBase , Object[]) +39 
    System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters) +17 
    System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) +178 
    System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +24 
    System.Web.Mvc.<>c__DisplayClassa.<InvokeActionMethodWithFilters>b__7() +52 
    System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation) +254 
    System.Web.Mvc.<>c__DisplayClassc.<InvokeActionMethodWithFilters>b__9() +19 
    System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation) +254 
    System.Web.Mvc.<>c__DisplayClassc.<InvokeActionMethodWithFilters>b__9() +19 
    System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation) +254 
    System.Web.Mvc.<>c__DisplayClassc.<InvokeActionMethodWithFilters>b__9() +19 
    System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext, IList`1 filters, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +192 
    System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) +399 
    System.Web.Mvc.Controller.ExecuteCore() +126 
    System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) +27 
    System.Web.Mvc.ControllerBase.System.Web.Mvc.IController.Execute(RequestContext requestContext) +7 
    System.Web.Mvc.MvcHandler.ProcessRequest(HttpContextBase httpContext) +151 
    System.Web.Mvc.MvcHandler.ProcessRequest(HttpContext httpContext) +57 
    System.Web.Mvc.MvcHandler.System.Web.IHttpHandler.ProcessRequest(HttpContext httpContext) +7 
    System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +181 
    System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75 

Pour résoudre ce problème, je l'avais ajouté cette ligne de code dans le fichier web.config.

<compilation debug="true"> 
    <assemblies> 
..................... ............. 
     <add assembly ="NPOI, Version=1.2.1.0, Culture=neutral, PublicKeyToken=0df73ec7942b34e1"/> 
     <add assembly="NPOI.POIFS, Version=1.2.1.0, Culture=neutral, PublicKeyToken=0df73ec7942b34e1"/> 
     <add assembly ="NPOI.HPSF, Version=1.2.1.0, Culture=neutral, PublicKeyToken=0df73ec7942b34e1"/> 
     <add assembly ="NPOI.Util, Version=1.2.1.0, Culture=neutral, PublicKeyToken=0df73ec7942b34e1"/> 
    </assemblies> 
    </compilation> 

Et [assembly: AllowPartiallyTrustedCallers()] à Assemblyinfo.cs. Mais peu de travail. Quel est le principal problème et quelle est la solution? Pls m'aider ...

+0

Veuillez écrire le code de ReportController.TravelTaxList(). – Levi

Répondre

1

Non, c'est NPOI qui doit permettre aux appelants partiellement de confiance. Il est probablement en train de faire quelque chose sous la couverture qui ne fonctionnera pas dans un environnement de confiance moyenne. En regardant le NPOI website, on dirait que c'était updated to run in medium trust environments vers la fin de l'année dernière, mais c'était après la version 1.2.1. Vous devriez essayer la version la plus récente, 1.2.3 bêta, pour voir si cette mise à jour est arrivée et si cela va résoudre le problème pour vous.

+0

désolé ami ... cela n'a pas fonctionné .... peut-être que j'ai eu un problème avec mon serveur d'hébergement ... peut-être mon serveur a mis .NET niveau de sécurité de la permission au niveau de confiance moyenne. – MikMark

+0

Est-il possible de définir le niveau d'autorisation au niveau de confiance complet en codant .... quelle est la solution pour cela ???? – MikMark

Questions connexes