89 votes

Impossible de charger le fichier ou l'assembly ou l'une de ses dépendances. L'accès est refusé. La question est aléatoire, mais après une fois, elle continue

J'ai trouvé beaucoup d'informations sur cette erreur: "ERREUR: impossible de charger le fichier ou l'assembly '*.dll' ou une de ses dépendances. L'accès est refusé.' Mais je n'ai pas trouvé de réponse spécifique à mon scénario. Mon site est de déployer sur 6 différents serveurs de production, sur un seul serveur, je suis confronté à ce problème. Le problème est aléatoire, mais après cela se produit, il continue jusqu'à ce que le site est de recompiler en fait une petite modification dans le web.fichier de config(je sais astuce, après modification dans le web.config recompiler l'application web) et du site sur le serveur de commencer à travailler. Hier, la question était de reproduire un mois après la période de travail. Nous ne pouvons nous permettre cette question sur la production.
Question de détail:

Erreur de serveur dans l'Application'/'. ____________________________________ Impossible de charger le fichier ou l'assembly 'MainCore.DbImpl, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' ou une de ses dépendances. L'accès est refusé. Description: Une exception non gérée s'est produite pendant l'exécution de la demande web actuelle. Veuillez consulter la trace de la pile pour plus d'informations sur l'erreur et où elle a son origine dans le code.

Détails De L'Exception: System.IO.FileLoadException: impossible de charger le fichier ou l'assembly 'MainCore.DbImpl, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' ou une de ses dépendances. L'accès est refusé.

Source De L'Erreur: Une exception non gérée s'est produite lors de l'exécution de la demande web actuelle. Informations concernant l'origine et l'emplacement de l'exception peut être identifié à l'aide de la trace de pile d'exception ci-dessous.

L'assemblée Charge de Trace: Les informations suivantes peuvent être utiles pour déterminer les raisons de l'assemblée " MainCore.DbImpl, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null " n'a pas pu être chargé.

WRN: Assemblée de liaison de la journalisation est DÉSACTIVÉE. Pour activer l'échec de liaison d'assembly journalisation, définissez la valeur de registre [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) à 1. Remarque: Il y a peu de performance de la pénalité associée à de liaison d'assembly échec de l'enregistrement. Pour désactiver cette fonction, supprimez la valeur de registre [HKLM\Software\Microsoft\Fusion!EnableLog].

Trace De La Pile:

[FileLoadException: impossible de charger le fichier ou l'assembly 'MainCore.DbImpl, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' ou une de ses dépendances. L'accès est refusé.] ...DbImpl.De l'événement.TTCEventController.GetEventFields(Int32 eventId) +0 WebSuite.SportChannel.ModelImpl.TTCModelController.AddEventFieldList(XmlElement eventNode, ITTCEventController ctrl, Int32 id de l'événement, PlayerType stupidType) ...root\SportChannel\ModelImpl\Ttc\TTCModelController.cs:171 ...ModelImpl.TTCModelController.GetLatestFourTourSchedulesXml () ...root\SportChannel\ModelImpl\Ttc\TTCModelController.cs:283 ...Racine de votre site.UserControls.HeadlinesTab.Page_Load(Object sender, EventArgs e) +491 Système.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, l'Objet o, t Objet, EventArgs e) +25 Système.Web.Util.CalliEventHandlerDelegateProxy.Rappel(Object sender, EventArgs e) +42 Système.Gestionnaire d'événements.Invoke(Object sender, EventArgs e) +0 Système.Web.L'INTERFACE utilisateur.De contrôle.OnLoad(EventArgs e) +132 Système.Web.L'INTERFACE utilisateur.De contrôle.LoadRecursive() +66 Système.Web.L'INTERFACE utilisateur.De contrôle.LoadRecursive() +191 Système.Web.L'INTERFACE utilisateur.De contrôle.LoadRecursive() +191 Système.Web.L'INTERFACE utilisateur.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2428
____________________________________

Les Informations De Version: Microsoft .NET Framework Version:2.0.50727.5446; ASP.NET Version:2.0.50727.5420

57voto

proudgeekdad Points 1278

Pour mon scénario, j'ai trouvé qu'il y avait un nœud d'identité dans le fichier web.config.

<identity impersonate="true" userName="blah" password="blah">

Lorsque j'ai supprimé les paramètres userName et password du noeud, cela a commencé à fonctionner.

Une autre option peut être que vous devez vous assurer que le nom d'utilisateur spécifié a le droit de travailler avec ces dossiers "Fichiers ASP.NET temporaires" trouvés dans les différents dossiers C: \ Windows \ Microsoft.NET \ Framework {version}.

En espérant que cela aide quelqu'un d'autre à sortir!

44voto

fragment Points 36

Avait le même problème, résolu avec la définition du paramètre "Activer les applications 32 bits" sur true (dans les paramètres avancés du pool d'applications IIS).

28voto

khawarPK Points 467

O j'ai finalement trouvé la solution, que je n'ai pas trouvé \dossier racine en vertu de C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET les Fichiers. Google m'a dit qu'il pourrait y avoir des problème de permission à l'encontre de l'utilisateur actuel, puis j'ai trouvé j'ai d'Identité en cours: IIS APPPOOL dans le dysfonctionnement du serveur où comme le reste de serveur d'Identité en cours: NT AUTHORITY\NETWORK SERVICE. puis j'ai changé d'Identité en cours de pool d'applications IIS pour NT AUTHORITY\NETWORK SERVICE. ensuite trouvé après recompilation(modification dans le web.config recompiler l'application web), j'ai trouvé Temporaire ASP.NET les Fichiers. qui maintenant dysfonctionnement du serveur de commencer la création de fichier temporaire. Espérons que la prochaine fois ce problème ne se produit pas. Merci À Tous :)

26voto

Yorro Points 1889

À quelqu'un d'autre qui a essayé la plupart des solutions et encore avoir des problèmes.

Ma solution est différente des autres, qui est situé au bas de ce post, mais avant de vous essayer assurez-vous que vous avez épuisé les listes ci-dessous. Pour être sûr, j'ai tout essayé, mais en vain.

  1. Recompiler et de les redéployer à partir de zéro, ne pas mettre à jour l'application existante. DONC Réponse

  2. Subvention IIS_IUSRS un accès complet au répertoire "C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET les Fichiers"

    Gardez à l'esprit le cadre de la version que vous utilisez. Si votre application est d'utiliser l'emprunt d'identité, d'utiliser cette identité au lieu de IIS_IUSRS

  3. Supprimez tout le contenu du répertoire "C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET les Fichiers".

    Gardez à l'esprit le cadre de la version que vous utilisez

  4. Modifier l'identité du pool d'applications que votre application est à utiliser à partir de ApplicatonPoolIdentity à NetworkService.

    IIS > Pools d'Applications > Sélectionnez l'application en cours de piscine > Paramètres avancés > Identité.

    DONC Réponse (veuillez restaurer les paramètres par défaut si cela ne fonctionne pas)

  5. Vérifier IIS Version et du pool d'applications .La version NET de compatibilité avec votre application. Très applicable pour la première fois les déploiements. DONC Réponse

  6. Vérifier l'emprunt d'identité de la configuration, le cas échéant. DONC Réponse

Ma Solution:

J'ai trouvé que certains logiciels anti-virus sont activement blocage des compilations de Dll dans le répertoire Temporaire ASP.NET les Fichiers", le mien était de McAfee, IL les gens pas à me faire part de l'installation.

Selon le conseil par les deux experts de McAfee et Microsoft, vous devez exclure le répertoire Temporaire ASP.NET les Fichiers" dans l'analyse en temps réel.

Sources:

Ne pas désactiver l'Anti-Virus, car il est seulement fait son travail. Ne pas copier manuellement les fichiers DLL manquants dans le répertoire \Temporary ASP.NET les Fichiers de{nom du projet} parce que c'est conduit coller.

7voto

kad81 Points 782

Si vous utilisez l'emprunt d'identité, veillez à donner les autorisations, y compris les autorisations d' écriture et de modification , sur le compte d'utilisateur approprié dans le dossier suivant:

 C:\Users\[username]\AppData\Local\Temp\Temporary ASP.NET Files
 

Il me manquait l'autorisation de modification, ce qui expliquait pourquoi l'ajout des autorisations par défaut ne fonctionnait pas pour moi.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X