Транспортные ошибки из-за местоположения класса? (SMTP) - PullRequest
1 голос
/ 16 ноября 2009

ASP.NET 2.0 внутреннее (интранет) веб-приложение, использующее встроенную аутентификацию + олицетворение. Разработано на сервере разработки (где находятся классы) и опубликовано на рабочем сервере интрасети. Пожалуйста, потерпите меня, я не разработчик .NET! Из-за перемещения и обновления сервера Exchange старое приложение с поврежденными почтовыми функциями. Я нашел код SMTP в файле класса на сервере разработчиков. Проблема в том, что этот код работает нормально, если я вызываю его локально как функцию в коде данной страницы (функционал почты работает), но если я пытаюсь вызвать то же самое, что и открытый класс, я получаю следующую ошибку:

The transport failed to connect to the server.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.Runtime.InteropServices.COMException: The transport failed to connect to the server.


Source Error: 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.  

Stack Trace: 


[COMException (0x80040213): The transport failed to connect to the server.
]

[TargetInvocationException: Exception has been thrown by the target of an invocation.]
   System.RuntimeType.InvokeDispMethod(String name, BindingFlags invokeAttr, Object target, Object[] args, Boolean[] byrefModifiers, Int32 culture, String[] namedParameters) +0
   System.RuntimeType.InvokeMember(String name, BindingFlags bindingFlags, Binder binder, Object target, Object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, String[] namedParams) +2501616
   System.Web.Mail.LateBoundAccessHelper.CallMethod(Object obj, String methodName, Object[] args) +72

[HttpException (0x80004005): The transport failed to connect to the server.
]
   System.Web.Mail.LateBoundAccessHelper.CallMethod(Object obj, String methodName, Object[] args) +119
   System.Web.Mail.CdoSysHelper.Send(MailMessage message) +2684
   System.Web.Mail.SmtpMail.Send(MailMessage message) +131
   classes.Email.SendEmail(String strFrom, String strTo, String strSubject, String strBody) in \\Devserver\Inetpub\wwwroot\webprojects\classes\Email.vb:18
   EducationSurvey.SendSurvey.SendEmailToAttendees(DataTable dtQualifiedParticipants, String strSubject, String strBody) +151
   EducationSurvey.SendSurvey.Page_Load(Object sender, EventArgs e) +938
   System.Web.UI.Control.OnLoad(EventArgs e) +99
   System.Web.UI.Control.LoadRecursive() +47
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1061

Поскольку некоторые части приложения и, возможно, другие старые части нашей интрасети вызывают этот класс (классы> Электронная почта), я бы хотел исправить его на месте или выяснить, как переместить класс на рабочий сервер. где это приложение опубликовано. Может ли аутентификация не передаваться классам?

Я надеюсь, что кто-нибудь может дать мне подсказку или сказать, что даже спросить! Я не в себе, чтобы быть уверенным ... Вот функция, которая работает, если включена в код позади страницы:

    Function SendNow(ByVal strFrom As String, ByVal strTo As String, ByVal strSubject As String, ByVal strBody As String) As Object
        Dim msg As New MailMessage()
        Dim smtp As SmtpClient

        msg.From = New MailAddress(strFrom)
        msg.To.Add(strTo)
        msg.Subject = strSubject

        msg.Body = strBody

        smtp = New SmtpClient("echangeServerName")

        smtp.UseDefaultCredentials = True

        smtp.Send(msg)

        Return True

    End Function

Однако, если я помещаю тот же код обратно в файл класса, открытый класс Email (который находится вне решения проекта), я получаю ошибку транспорта выше.

1 Ответ

0 голосов
/ 03 октября 2010

Это может быть связано с сетью, проблемой DNS или чем-то подобным.

Посмотрел его на www.systemwebmail.com ( Транспорт не смог подключиться к серверу ), что дает некоторые возможные идеи. Я бы предложил перейти непосредственно к IP-адресу и DNS-имени NETBIOS для тестирования. Это может сузить проблему и предоставить дополнительную информацию.

В трассировке также упоминается использование пространства имен System.Web.Mail, но, похоже, ваш код использует пространство имен System.Net.Mail.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...