2016-09-30 4 views
2

Я использую сервер smtp google для отправки электронной почты через мою контактную форму. На локальном сервере она работает нормально, но на веб-сервере она показывает эту ошибку. Во-первых, я использовал номер порта , который дает ошибку «Исключение безопасности», и ошибка была на линии using (SmtpClient smtp = new SmtpClient(smtpAddress, portNumber)), но я изменил порт на , и он дает эту новую ошибку на линии.Попытка получить доступ к сокету запрещена его разрешениями доступа

smtp.Send(mail); 

Описание:

Необработанное исключение при выполнении текущего запроса веб. Просмотрите трассировку стека за дополнительной информацией о ошибке и где она возникла в коде.

Сведения об исключении:

System.Net.Sockets.SocketException: Была сделана попытка получить доступ к гнездо таким образом, запрещенным правами доступа 74.125.206.108:25

Мой код:

protected void send_Click(object sender, EventArgs e) 
{ 
    string smtpAddress = "smtp.gmail.com"; 
    int portNumber = 25; 
    bool enableSSL = true; 

    string emailfrom = "[email protected]"; 
    string password = "******"; 
    string subject = "Contact Form Data"; 
    string emailto = "[email protected]"; 
    string name = n.Value;  
    string useremail = em.Value; 
    string phone = tel.Value; 
    string dept = dep.Value; 
    string dest = des.Value; 
    string adu = ad.Value; 

    string msg = mes.Value; 
    string body = "Name: " + name + " ;" + " Email: " + useremail + " ;" + "Telephone: " + phone + " ;" + " Departure Place: " + dept + " ;" + "Destination Place: " + dest + " ;" + " Adults: " + adu + " ;" + " ;" + "Children: " + chil + " ;" + "Message: " + msg + " ;"; 

    using (MailMessage mail = new MailMessage()) 
    { 
     mail.From = new MailAddress(emailfrom); 
     mail.To.Add(emailto); 
     mail.Subject = subject; 
     mail.Body = body; 
     mail.IsBodyHtml = true; 

     using (SmtpClient smtp = new SmtpClient(smtpAddress, portNumber)) 
     { 
      smtp.Credentials = new NetworkCredential(emailfrom, password); 
      smtp.EnableSsl = enableSSL; 
      smtp.Send(mail); 
     } 
    } 
} 

Трассировка стека

[SocketException (0x271d): Была сделана попытка доступа к сокету способом, запрещенным правами доступа 74.125.206.108:25] System.Net.Sockets.Socket.DoConnect (EndPoint endPointSnapshot, socketAddress socketAddress) +208 System.Net.ServicePoint.ConnectSocketInternal (булево connectFailure, гнездо s4, s6 гнездо, гнездо & гнездо, IPAddress & адрес, ConnectSocketState состояние, IAsyncResult AsyncResult, исключение & исключения) +464

[WebException: Невозможно подключиться к удаленному серверу] System.Net.ServicePoint.GetConnection (PooledStream PooledStream, владельца объекта, Boolean асинхр, IPAddress & адреса, розетка & abortSocket, гнезда & abortSocket6) +6662436 System.Net.PooledStream.Activate (Объект owningObject, булева асинхронной, GeneralAsyncDelegate AsyncCallback) +307 System.Net.PooledStream.Activate (Object owningObject, GeneralAsyncDelegate AsyncCallback) +19 System.Net.ConnectionPool.GetConnection (Объект, владеющийОбъект, GeneralAsy ncDelegate AsyncCallback, Int32 creationTimeout) +324 System.Net.Mail.SmtpConnection.GetConnection (ServicePoint Servicepoint) +141 System.Net.Mail.SmtpTransport.GetConnection (ServicePoint Servicepoint) +170 System.Net.Mail.SmtpClient. GetConnection() +44 System.Net.Mail.SmtpClient.Send (сообщение MailMessage) +1554

[SmtpException: отказ отправки почты.] 10 System.Net.Mail.SmtpClient.Send (сообщение MailMessage) +1906 Contact.send_Click (отправитель объекта, EventArgs e) в \ smb-whst-www02 \ whst_www02 $ \ ff8b1b \ user \ medviewair.uk \ web \ Contact.aspx.cs: 51 System.Web.UI.WebControls.Button.OnClick (EventArgs e) +9628462 System.Web.UI.WebControls.Button.RaisePostBackEvent (String eventArgument) +103 System.Web.UI.WebControls.Button.System.Web .UI.IPostBackEventHandler.RaisePostBackEvent (String eventArgument) +10 System.Web.UI.Page.RaisePostBackEvent (IPostBackEventHandler SourceControl, String eventArgument) +13 System.Web.UI.Page.RaisePostBackEvent (NameValueCollection PostData) +35 System.Web.UI.Page.ProcessRequestMain (Boolean inc. ludeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1724

+0

У вас [this] (http://stackoverflow.com/questions/20779336/an-attempt-was-made-to-access-a-socket-in-a-way-forbidden-by-its-access-permiss)? – knobcreekman

+0

Если он работает локально, но не на веб-сервере, проверьте брандмауэр на веб-сервере, чтобы убедиться, что доступны исходящие соединения на выбранном вами порту. Попробуйте подключиться с веб-сервера к SMTP-серверу с помощью 'telnet' по выбранному порту. Кроме того, вы пытались подключиться через порт 465? Или попробуйте порт 25 с 'smtp.EnableSsl = false;' – knobcreekman

+0

Я пробовал разные номера портов и enablessL до false, но он по-прежнему не работает. –

ответ

2

Пожалуйста, убедитесь, что ваш веб-сервер настроен правильно, и это и работает.

В случае, если ваше приложение выбрасывает исключение, то выполните следующие действия:

  1. Выберите «Пуск» -> «Панель управления»
  2. Нажмите на кнопку «Брандмауэр Windows» enter image description here

    Брандмауэр
  3. Inside Windows, нажмите на кнопку "Разрешить запуск программы или компонента через брандмауэр Windows" enter image description here

  4. Теперь в окне «Разрешить программы» нажмите кнопку «Изменить настройки». После нажатия кнопки «Изменить параметры» активируется кнопка «Разрешить другую программу ...». enter image description here

  5. Нажмите кнопку «Разрешить другую программу ...», откроется новое диалоговое окно. Выберите программы или приложения, для которых вы получаете исключение сокета, и нажмите кнопку «Добавить». enter image description here 6. Нажмите «ОК» и перезагрузите компьютер.

  6. Попробуйте запустить приложение (которое имеет исключение) с правами администратора.

Надеюсь, это поможет.

Мира,

Солнечного Makode

0

мне пришлось отключить Kaspersky End Point антивирусной безопасности

0

Я отключил McAfee, и она работала, конечно, его брандмауэр или антивирус настройку

Смежные вопросы

 Смежные вопросы