Ne pouvait pas charger le fichier ou l'assemblage ou l'une de ses dépendances. L'accès est refusé. Le problème est aléatoire, mais après cela se produit, il 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 déployé sur 6 serveurs de production différents, seulement sur un serveur je suis confronté à ce problème. Le problème est aléatoire, mais après qu'il se produit Une fois, il continue jusqu'à ce que le site est recompilé par fait une petite modification dans web.fichier de configuration (je connais trick, après modification dans Web.config recompile l'application web) et le site sur ce serveur commencent à fonctionner. Hier, le numéro se reproduisait après un mois de travail. Nous ne pouvons pas nous permettre ce problème sur la production.

Détail de la question:

erreur de serveur dans L'Application'/'. ____________________________________ Ne pouvait pas charger le fichier ou l'assemblage 'MainCore.DbImpl, Version = 0.0.0.0, Culture = neutre, PublicKeyToken = null' ou l'un des ses dépendances. L'accès est refusé. Description: Une exception est survenue lors de l'exécution de la requête web en cours. Veuillez consulter la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code.

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

Erreur Source: Une exception non manipulée a été générée lors de l'exécution de la requête web actuelle. Les informations concernant l'origine et l'emplacement de l'exception peuvent être identifiées en utilisant la trace de la pile d'exception ci-dessous.

trace de la charge D'assemblage: les informations suivantes peuvent être utiles pour déterminer pourquoi le moteur de l'assemblage.DbImpl, Version = 0.0.0.0, Culture=neutre, PublicKeyToken = null' n'a pas pu être chargé.

WRN: La journalisation de la reliure d'assemblage est désactivée. Pour activer la journalisation des échecs d'assemblage de bind, définissez la valeur de Registre [HKLMSoftwareMicrosoftFusion!EnableLog] (DWORD) à 1. Note: il y a une certaine pénalité de performance associée à la journalisation de défaillance de la liaison d'assemblage. Pour désactiver cette fonctionnalité, supprimer la valeur de Registre [HKLMSoftwareMicrosoftFusion!EnableLog].

Trace De La Pile:

[FileLoadException: impossible de charger le fichier ou l'assemblage "MainCore.DbImpl, Version = 0.0.0.0, Culture=neutre, PublicKeyToken = null' ou l'une de ses dépendances. L'accès est refusé.] ...DbImpl.Événement.TTCEventController.GetEventFields (Int32 eventId) +0 WebSuite.SportChannel.ModelImpl.TTCModelController.AddEventFieldList (XmlElement eventNode, ITTCEventController ctrl, Int32 eventId, PlayerType stupidType) in ...rootSportChannelModelImplTtcTTCModelController.cs: 171 ...ModelImpl.TTCModelController.GetLatestFourTourSchedulesXml () in ...rootSportChannelModelImplTtcTTCModelController.cs: 283 ...WebRoot.UserControls.HeadlinesTab.Page_Load (object sender, EventArgs e) +491 Système.Web.Util.CalliHelper.EventArgFunctionCaller (IntPtr fp, Object o, Object t, EventArgs e) +25 Système.Web.Util.Callievenethandlerdelegateproxy.Callback (object sender, EventArgs e) +42 Système.Gestionnaire d'événements.Invoke (Object sender, EventArgs e) +0 Système.Web.INTERFACE.Contrôle.OnLoad (EventArgs e) + 132 Système.Web.INTERFACE.Contrôle.LoadRecursive () + 66 Système.Web.INTERFACE.Contrôle.LoadRecursive () + 191 Système.Web.INTERFACE.Contrôle.LoadRecursive () + 191 Système.Web.INTERFACE.Page.ProcessRequestMain (booléen includeStagesBeforeAsyncPoint, booléen includeStagesAfterAsyncPoint) +2428

____________________________________

Information de Version: Microsoft. NET Framework Version: 2.0.50727.5446; ASP.NET Version: 2.0.50727.5420

71
demandé sur Pablo Claus 2012-06-19 11:23:03

20 réponses

pour mon scénario, j'ai trouvé qu'il y avait un noeud d'identité dans le web.fichier de configuration.

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

lorsque j'ai supprimé les paramètres nom d'utilisateur et mot de passe de node, il a commencé à fonctionner.

une autre option pourrait être que vous devez vous assurer que le nom d'utilisateur spécifié a accès à travailler avec ceux "temporaire ASP.NET dossiers" des dossiers trouvés dans les divers C:\Windows\Microsoft.NET\Framework dossiers{version}.

en Espérant que cela aide quelqu'un d'autre!

43
répondu proudgeekdad 2013-11-12 16:48:35

avait le même problème, fixé avec le paramètre " activer les applications 32 bits " à " true " (dans les paramètres avancés de la piscine d'application iis).

34
répondu Fragment 2015-12-29 05:41:38

ma solution est la suivante:

Je n'ai pas trouvé de root folder sous C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files .

Google M'a dit que cela pourrait être un problème de permission contre l'utilisateur actuel, puis j'ai trouvé que j'ai une identité actuelle: IIS APPPOOL dans le serveur de dysfonctionnement où le reste du serveur a L'identité actuelle: NT AUTHORITY\NETWORK SERVICE .

puis j'ai changé L'identité actuelle de IIS APPPOOL à NT AUTHORITY\NETWORK SERVICE .

d'ici, j'ai trouvé que la réinitialisation de l'application web reconstruit le temporaire ASP.NET cache, résoudre le problème.

23
répondu khawarPK 2014-12-02 14:44:11

à tous ceux qui ont essayé la plupart des solutions et qui ont encore des problèmes.

ma solution est différente des autres, qui est situé au bas de ce post, mais avant de l'essayer assurez-vous que vous avez épuisé les listes suivantes. Bien sûr, je les ai tous essayés, mais en vain.

  1. recompiler et 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 la version de cadre que vous utilisez. Si votre application utilise l'usurpation d'identité, utilisez cette identité à la place de IIS_IUSRS

  3. supprimer tout contenu de l'annuaire "C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files" ".

    gardez à l'esprit la version de cadre que vous utilisez

  4. changez l'identité de L'application que votre application utilise, de ApplicatonPoolIdentity à NetworkService.

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

    AFIN de Répondre à (veuillez restaurer les paramètres par défaut si cela ne fonctionne pas)

  5. vérifier la compatibilité de la Version IIS et de la version AppPool.net avec votre application. Applicable aux premiers déploiements. AFIN de Répondre à

  6. vérifier la configuration de l'usurpation d'identité, s'il y a lieu. AFIN de Répondre à

Ma Solution:

j'ai découvert que certains logiciels antivirus bloquent activement les compilations de DLLs dans le répertoire "temporaire ASP.NET dossiers " , le mien était McAfee, les gens D'IT n'ont pas réussi à me notifier de l'installation.

selon les conseils des experts de McAfee et de Microsoft, vous devez exclure le répertoire "temporaire ASP.NET fichiers " dans la numérisation en temps réel.

Sources:

ne désactivez pas L'antivirus parce qu'il ne fait que son travail. Ne copiez pas manuellement les fichiers DLL manquants dans le répertoire \temporaire ASP.NET fichiers{Nom du projet} parce que c'est canal taping.

20
répondu Yorro 2017-05-23 12:34:40

Si vous êtes toujours confronté à la question, essayez ceci:

ouvrez votre Gestionnaire IIS - > Pools D'Applications - > Sélectionnez votre pool d'Applications - > Paramètres préalables - > sous' modèle de processus 'paramétrez' Load User Profile 'comme True

enter image description here

4
répondu Love Chopra 2016-02-05 10:25:37

si vous utilisez l'usurpation d'identité, assurez-vous de donner les permissions, y compris écrire et modifier permission au compte d'utilisateur concerné sur le dossier suivant:

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

je manquais la permission de modifier, c'est pourquoi juste ajouter les permissions par défaut ne fonctionnait pas pour moi.

3
répondu kad81 2014-11-04 22:41:54

j'ai eu le même problème, fixé par reconstruire et redéployer tous personnes à charge Dll fichiers

3
répondu Yasser Amer 2015-09-01 08:15:14

Aller à IIS -> Pool d'Applications -> Paramètres avancés -> Activer les Applications 32 bits

3
répondu Peyman.Vl 2017-11-16 04:34:31

vérifiez les réglages de L'IIS. J'utilise IIS 7.5 avec 32 ou 64 bits de compilation dans le cadre de .NET. Si vous avez une application qui utilise le mode 32 bits, assurez-vous d'activer L'Application Pool pour être en mesure d'utiliser l'instruction 32 bits. Sinon, rien ne semble fonctionner, peu importe combien vous mettez la sécurité ou signe fort de la DLL.

2
répondu Mr_CSharp 2015-10-22 22:53:12

je crois que j'ai perdu comme 1 jour sur la recherche et ce que je suis sorti avec.

vous devez ajouter l'utilisateur imposteur au dossier de débogage de votre Solution comme le cadre va essayer d'accéder à la DLL à partir de cet endroit et le placer dans temporaire Asp.Net dossier.

donc suivez essentiellement ces 2 étapes

  1. donner l'autorisation à Temporaire Asp.Net dossier sous C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files et assurez-vous l'utilisateur que vous ajoutez ici est le même que vous utilisez en empruntant l'identité.

  2. ajouter l'utilisateur usurpateur au dossier de débogage de votre Solution YourSolutionPath .. \bin\Debug

Cela devrait fonctionner

2
répondu Naveen Kokcha 2016-10-18 17:44:39

dans mon cas, c'était en raison de la caractéristique de protection D'accès de mon antivirus (McAfee). Il était évident qu'il bloquait l'accès à ce fichier, en tant que telle l'erreur.

Je l'ai désactivé et la solution a fonctionné. Vous pourriez vouloir vérifier toute application utilitaire que vous pourriez avoir en cours d'exécution qui pourrait affecter l'accès à certains fichiers.

2
répondu Houdini Sutherland 2017-04-21 04:18:47

Je n'utilisais pas l'imitation dans mon cas. Ma solution a été de donner un accès complet à mon répertoire de projet pour le groupe d'utilisateurs "IIS_IUSRS".

1
répondu MFry 2015-06-04 14:16:36
 Go to run  : ctrl + R
 Type : %temp%

supprimer tous les fichiers et dossiers

 Rebuild Project.
 done!
1
répondu Saurin Vala 2016-07-01 14:15:01

j'ai rencontré ce problème et il s'est avéré qu'un paquet/assemblage référencé était crypté par Windows. Cela s'est produit parce que mon entreprise a mis en œuvre une politique pour exiger que le dossier Mes Documents soient cryptés et que mes solutions Visual Studio se trouvaient dans ce répertoire.

je pourrais entrer manuellement dans les propriétés de fichier/répertoire dans Windows Explorer et désactiver le cryptage. Mais dans mon cas, c'était une solution temporaire car le réseau politique éventuellement changer de nouveau. J'ai fini par déplacer ma solution VS vers un autre endroit non crypté.

1
répondu mike bruner 2016-10-28 02:18:59

dans mon cas, j'avais copié un service d'un serveur à un autre sans effectuer un déploiement approprié à partir de Visual Studio. C'est une longue histoire.

quoi qu'il en soit, j'avais mis en place toutes les permissions NTFS appropriées et ainsi de suite, mais il ne pouvait toujours pas charger la DLL principale pour le service.

je l'ai corrigé en renommant le service correspondant.fichier pdb à autre chose.

par exemple voici mon dossier bin: \bin\ service.dll service.dll.config service.pdb J'ai renommé service.APB à zzservice.apb, puis le service.dll amende chargé.

1
répondu Van Vangor 2017-09-07 13:05:55

j'ai eu cette erreur à partir de VS. Il s'est avéré que j'avais ouvert une solution sans exécuter Visual Studio comme administrateur. Fermer Visual studio et le lancer à nouveau comme administrateur puis reconstruire résolu cela pour moi.

Espère que ça aide quelqu'un.

0
répondu garryp 2015-04-24 08:59:21

dans mon cas, j'utilisais une imitation simple et l'utilisateur de l'imitation avait de la difficulté à accéder à l'un des assemblages du projet. Ma solution:

  1. cherchez le message de l'exception intérieure pour identifier l'assemblage problématique.
  2. Modifier les propriétés de sécurité du fichier d'assemblage.

    a) ajoutez le compte d'utilisateur que vous utilisez pour l'usurpation d'identité aux noms de groupe et d'utilisateur.

    b) donner à ce compte d'utilisateur un accès complet au fichier d'assemblage.

0
répondu Erin Gibbs 2016-08-24 20:23:25

je mets en place un environnement sur le nouveau serveur. Mon web.config a obtenu le noeud d'identité comme ci-dessous.Lorsque je faisais face à "ne pouvait pas charger le fichier ou l'assemblage ou l'une de ses dépendances. L'accès est refusé. La question Est aléatoire, mais après qu'il se produit Une fois, il continue"

ajouté ccs\HJKWeb comme liste des utilisateurs de mon nouveau serveur.

  <authentication mode="Windows" />
        <identity impersonate="true" password="******" userName="ccs\HJKWeb" />
0
répondu user2211290 2018-05-31 13:32:35

si vous obtenez la DLL ne pouvait pas être trouvé au lieu de l'Accès refusé, assurez-vous que vous avez le VC++ redistribuable approprié installé.

0
répondu js290 2018-07-19 00:22:05

pour moi, le hack suivant a fonctionné; Aller à IIS - > Pools D'Applications - > Paramètres avancés - > modèle de processus - > identité Changé du compte intégré (ApplicationPoolIdentity) au compte personnalisé (mon utilisateur de domaine)

0
répondu Amjad 2018-09-03 11:43:54