Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

System.Net.Mail.SmtpException: Cannot get IIS pickup directory.

Posted on 2007-03-20
8
Medium Priority
?
10,039 Views
Last Modified: 2013-11-07
Help!!!

I setup a new computer for my development.  I re-installed VS2005 and the service pack.  All Windows XP updates have been applied.  I am now getting the following error when I try to send e-mail.

A first chance exception of type 'System.Net.Mail.SmtpException' occurred in System.dll
"System.Net.Mail.SmtpException: Cannot get IIS pickup directory.
   at System.Net.Mail.IisPickupDirectory.GetPickupDirectory()
   at System.Net.Mail.SmtpClient.Send(MailMessage message)
   at ITCClass.ITCCom.DoEmail() in C:\DotNetProjects\ITCClass\ITCClass\ITCCom.vb:line 586"

Here is the code:

 Public Sub DoEmail()
        Dim MAdd As String = "me@us.com"
        Dim FromAdd As New MailAddress(MAdd)
        Dim Attach As String = "c:\export\RMDSAPAR_20070123.txt" ' Test for an attachment
        Dim MessAtt As New Attachment(Attach)
        Dim x As String, EMailSuccess As String
        Dim MailObj As New System.Net.Mail.SmtpClient("isasrv.main.dataserv.net")
        Dim Mess As New MailMessage
        Dim Subject As String, Body As String, Username As String
        FromAdd.Address.Insert(0, "me@us.com")
        Subject = "Test E-mail"
        Body = "This is a test e-mail"
        Mess.From = FromAdd
        Mess.To.Add("me@us.com")
        Mess.To.Add("bad_add@us.com") ' To test what happens when a bad address is sent
        Mess.Attachments.Add(MessAtt)
        Mess.Subject = Subject
        Mess.Body = Body
        MailObj.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis
        MailObj.UseDefaultCredentials = True
        Try
            MailObj.Send(Mess)
        Catch ex As Exception
            x = ex.ToString
            EMailSuccess = x
        End Try
    End Sub

This worked like a champ on my old computer but fails on the new one.  I am using the same user account on both and am connected to the same network.   I have looked and cannot find a resonable solution.

0
Comment
Question by:mkacos
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
8 Comments
 
LVL 15

Expert Comment

by:crisco96
ID: 18762954
in your web.config in system.web add the key:
<identity impersonate="true" />

Then in IIS configure your anonmyous user to be a user that has access to the pickup directory on your email server.
0
 
LVL 1

Author Comment

by:mkacos
ID: 18763787
Crisco
Thanks for the response but it opens more questions.
I added the Identity Impersonate to the new computer and it did not work.  I did not change the IIS config because the older machine works with the current settings.
I have compaired the web.config file on the old computer and the new one.  They are the same.  The old one does NOT have the identity impersonate entry in it yet it works.  




0
 
LVL 15

Expert Comment

by:crisco96
ID: 18763917
My guess is that the current user that the site runs under (with the new computer) doesn't have permissions to do what you're trying.  

Using identity impersonate and an anonymous user that definitely has access to the pickup folder would either confirm or reject my suspicion.
0
Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

 
LVL 1

Author Comment

by:mkacos
ID: 18764176
The site is on a seperate server, it is not on the new machine.  The only change is the new workstation.  The IIS server is the same as before and is a production server.

FYI: The user ID on the workstation is an administrator for the network.  The only obvious change is the new workstation name.
0
 
LVL 1

Author Comment

by:mkacos
ID: 18766606
After fixing an issue with our firewall that would not let me get to the pikcup directory, I changed the code to the following and it works.

MailObj.PickupDirectoryLocation = "\\Isasrv\PickUp2"
MailObj.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory

FYI: On the older machine, using MailObj.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis the emails did not send for hours.  Using SmtpDeliveryMethod.SpecifiedPickupDirectory they send immeadiatly
0
 
LVL 1

Accepted Solution

by:
Computer101 earned 0 total points
ID: 19098386
PAQed with points refunded (500)

Computer101
EE Admin
0
 

Expert Comment

by:ReallyGoodStuff
ID: 29925328
Why does the accepted answer say "PAQed with points refunded (500)

Computer101
EE Admin"

I need an answer to this as well?
0

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Creating an analog clock UserControl seems fairly straight forward.  It is, after all, essentially just a circle with several lines in it!  Two common approaches for rendering an analog clock typically involve either manually calculating points with…
It was really hard time for me to get the understanding of Delegates in C#. I went through many websites and articles but I found them very clumsy. After going through those sites, I noted down the points in a easy way so here I am sharing that unde…
The viewer will learn how to use NetBeans IDE 8.0 for Windows to connect to a MySQL database. Open Services Panel: Create a new connection using New Connection Wizard: Create a test database called eetutorial: Create a new test tabel called ee…
THe viewer will learn how to use NetBeans IDE 8.0 for Windows to perform CRUD operations on a MySql database.

722 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question