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 (который находится вне решения проекта), я получаю ошибку транспорта выше.