2017-05-31 4 views
2

Le message complet est"L'application a tenté d'effectuer une opération non autorisée par la politique de sécurité." Problème de confiance possible?

L'application a tenté d'effectuer une opération non autorisée par la politique de sécurité . Pour accorder à cette application l'autorisation requise , veuillez contacter votre administrateur système ou modifier le niveau de confiance de l'application dans le fichier de configuration.

J'ai récemment téléchargé une application MVC sur un site hébergé par Fasthosts.

L'application fonctionne correctement localement dans VS mais pas sur le serveur.

À l'origine, le message concernant l'activation des messages d'erreur distants a été ajouté. J'ai donc ajouté <customErrors mode="Off" /> au fichier de configuration qui l'avait initialement arrêté. J'ai ensuite vu le message d'erreur ci-dessus, donc après quelques recherches j'ai ajouté <trust level="Full" /> à <system.web> mais à la place j'ai un autre message disant que l'hôte a désactivé cette fonctionnalité. Le fait est, il n'y a rien d'inhabituel à propos de cette application; c'est juste une application MVC très basique. Il n'utilise pas de ressources sur un autre emplacement que la structure de dossiers actuelle, donc ne devrait pas vraiment avoir de problèmes de confiance.

Le problème est également exagéré car il semble y avoir une sorte de problème de mise en cache côté serveur.

La section <system.web> ressemble actuellement à ceci:

<system.web> 
    <customErrors mode="Off" /> 
    <trust level="Medium" /> 
    <compilation targetFramework="4.5.2" /> 
    <httpRuntime targetFramework="4.5.2" maxRequestLength="1048576" /> 
    </system.web> 

mais il dit toujours que je dois ajouter customErrors mode="Off" pour voir les messages d'erreur. L'ajout de différentes lignes au fichier de configuration dans diverses positions le ramènera éventuellement au premier message d'erreur, mais pas pour une raison logique que je peux voir.

Pour être complet, l'action du contrôleur ressemble à ceci:

public ActionResult Index(int vehicleId = 0) 
{ 
    ViewBag.VehicleId = vehicleId; 
    return View(); 
} 

La vue est juste un shedload de HTML avec quelques méthodes d'assistance, dont l'un est comme suit (les autres ne sont que des entités différentes, même Code autre):

public static MvcHtmlString Manufacturers(string id = "manufacturers", string className = "", string style = "", string optionClass = "", string optionStyle = "", int selectedValue = 0, bool showSelect = false) 
{ 
    var result = new StringBuilder(); 
    try 
    { 
     using (var context = new DB()) 
     { 
      var selected = selectedValue == 0 ? " selected" : ""; 
      result.Append($"<select id='{id}' class='{className}' style='{style}'>"); 
      if (showSelect) result.Append($"<option{selected} value='0' disabled='disabled'>(Select)</option>"); 
      foreach (var manufacturer in context.Manufacturers) 
      { 
       selected = manufacturer.ManufacturerId == selectedValue ? " selected" : ""; 
       result.Append($"<option{selected} value='{manufacturer.ManufacturerId}' class='{optionClass}' style='{optionStyle}'>{manufacturer.Name}</option>"); 
      } 
      result.Append("</select>"); 
     } 
    } 
    catch (Exception ex) 
    { 
     result = new StringBuilder(ex.GetBaseException().Message); 
    } 
    return new MvcHtmlString(result.ToString()); 
} 

J'ai un ticket de support ouvert avec Fasthosts mais je ne suis pas sûr que ça va répondre rapidement à tout moment :(

+1

Je ne sais pas la réponse à votre question, mais pour info, la confiance a plus à voir avec ce que le code peut faire que d'où il peut être chargé. Par exemple, la réflexion n'est généralement pas autorisée dans un paramètre de confiance partielle. – Amy

+0

Je pense que cela peut être répondu ici: https: // stackoverflow.com/questions/8242531/l'application-a-tenté-d'-effectuer-une-opération-non-autorisée-par-la-sécurité-p? rq = 1 - suis actuellement en train de vérifier avec Fasthosts ... – CompanyDroneFromSector7G

+0

Malheureusement, le support Fasthosts sont les suivants inutile. Utilisera un autre fournisseur d'hébergement à la place. – CompanyDroneFromSector7G

Répondre

0

il se révèle être t Le serveur hôte, après ils ont dit qu'il doit être mon code.

J'ai trouvé un autre fournisseur, téléchargé mon code, tout a bien fonctionné la première fois.

Parfois, ce n'est pas vous, c'est eux.