9
votes

Impossible d'obtenir le répertoire de prise en charge IIS

J'utilise le serveur SMTP 127.0.0.1 .L'étraction que je reçois:

system.net.mail.smtptPeXception: impossible d'obtenir iis pickup répertoire.at system.net.mail.iispickupdirectory.getpickupdirectory ().

Cette erreur s'est produite lors de l'envoi de courrier électronique à partir d'ASP Web.But Envoyer par e-mail à partir de la page ASP.NET, une erreur n'est pas survenue. Aide Plz.


0 commentaires

4 Réponses :


15
votes

Malheureusement, cette exception est soulevée lorsque tout type de problème se produit tout en essayant de déterminer l'emplacement du répertoire de capture IIS / SMTP. Une cause commune est manquante du service SMTP IIS.

Si vous envoyez un courrier à l'aide de system.net.mail.smtpClient, essayez de définir le répertoire de capture manuelle manuellement: xxx

ou défini Ceci dans web.config à ASP.NET à la place: xxx

alternativement, utilisez smtpdeliverymethod.network méthode et envoyé le hôte et port à votre serveur SMTP.

Plus d'informations: http://forum.iis.net/p/1149338/1869548.aspx


2 commentaires

Pouvez-vous clarifier davantage sur pickupDirectoryLocation? Quelle valeur que nous devons donner pour utiliser pickupDirectoryLocation?


La pickupdirectoryLocation doit être définie sur un chemin d'accès à un répertoire utilisé par le service SMTP IIS (ou un service tiers compatible) en tant que répertoire de pick-up - Tous les courriels enregistrés sont envoyés. Par exemple, cela pourrait être "c: \ inetpub \ mailroot \ pickup".



10
votes

Le répertoire de pick-up est stocké dans la métabase II6, de sorte que si le compte que votre application Web fonctionne comme n'a pas accès aux nœuds requis, cette erreur peut être lancée (si moi-même). Les autorisations de métabase sont séparées des autorisations de fichier. Vous l'explorez donc avec l'explorateur de métabase:

http: // www. Microsoft.com/downloads/Détails.aspx?familyID=56FC92e-A71A-4C73-B628-ADE629C89499&DISPLAYLANG=FR (sa partie du kit de ressources IIS)

Ces nœuds doivent avoir une autorisation de lecture donnée à votre utilisateur Web-App: \ Lm \ smtpsvc \ Lm \ smtpsvc \ 1


2 commentaires

Je devrais mentionner que j'ai également dû résoudre les autorisations de fichier pour que cela fonctionne.


C'est génial et je peux maintenant voir / comprendre le problème cependant sur ma boîte Windows 2008, j'utilise l'identité du pool d'applications et je ne parviens pas à utiliser l'interface graphique pour définir les autorisations pour ce compte d'utilisateur. J'ai déjà dû définir des autorisations de fichier de la ligne de commande pour contourner cela. Savez-vous s'il est possible de faire de même pour ces autorisations?



4
votes

J'avais cette même erreur sur Windows 7 avec du code qui a fonctionné bien sur XP. Après beaucoup d'essais et d'erreurs. Je configure IIS pour stocker mail dans un répertoire de pick-up. Mais j'ai toujours eu l'erreur.

Dans mon code, j'ai commenté la ligne:

Client.DeliveryMethod = smtpdeliveryMethod.pickupdirectoryfromiis;

Suppression de cette ligne de code travaillée, pas sûre pourquoi. J'espère que cela fonctionne aussi pour vous aussi parce que cette question est une réalité de dépassement de la difficulté.

Je n'ai pas eu à modifier les autorisations dans le répertoire. Je n'ai pas eu à modifier la métabase. Je n'avais pas à modifier le web.config (que je ne voulais vraiment pas faire parce que je veux seulement que les courriels placés dans un répertoire pendant que je fais du développement sur ma machine locale, pas en production - je ne voulais pas deux fichiers web.config différents à maintenir).


1 commentaires

Juste avoir chiming pour dire que c'était ce qui a fonctionné pour moi. Je mettais à jour un projet VS2004 à VS2010 et l'envoi de courrier électronique a refusé de travailler jusqu'à ce que cette ligne soit supprimée.



0
votes

Vous pouvez également le spécifier pour votre projet unittest: xxx pré>

et votre code de test: p> xxx pré>

Créer le fichier app.config Dans votre projet unit, s'il n'existe pas ou fusionner ces lignes avec App.Config existant. P>

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.net>
    <mailSettings>
      <smtp deliveryMethod="SpecifiedPickupDirectory">
        <specifiedPickupDirectory pickupDirectoryLocation="d:\temp\Emails\" />
      </smtp>
    </mailSettings>
  </system.net>
</configuration>


0 commentaires