У меня проблемы с выяснением, почему мой веб-сервис не работает правильно, когда вызывается из моего приложения asp.net только в рабочей среде.
Я могу запустить свое приложение asp.net локально, вызывая веб-службу (в работе), и она завершается правильно.
Я могу изменить файл web.config, чтобы я могиспользуйте тестовую форму на производственном веб-сервисе, и он правильно звонит.
Я звоню веб-сервису в совместно используемой dll и уже проверяю, действительно ли я получаю обновленную dll.
Это очень простой веб-сервис для регистрации любых исключений на наших сайтах, которые не обрабатываются в других местах.Я добавляю к нему дополнительные параметры, а также перемещаю его в другой проект, чтобы он был сгруппирован с другими нашими веб-службами.Он находится в своем собственном asmx-файле с именем ExceptionServices
Мой общий dll имеет класс ErrorHandler
, который вызывает (на данный момент, тестовый метод) TestEmail(string to)
, и все, что он делает, отправляет мне электронное письмо.
Как я уже говорил, при локальном запуске моего приложения оно вызывает производственный веб-сервис, и все хорошо.
Я работаю в размещенной среде и не могу установить средства удаленной отладки, чтобыЯ не могу пошагово пройти производственный код (если никто не знает никаких хитростей).
Просто кажется, что это должно работать ( стучит головой по клавиатуре ) ...
Вот мой основной веб-метод:
[WebMethod]
public void TestEmail(string to)
{
MailMessage mm = new MailMessage("no-reply@mydomain.com", to, "test", "body here");
SmtpClient client = new SmtpClient("localhost"); // already tried tweaking smtp server, and all my options work when I use the test form
client.Send(mm);
}
Класс ErrorHandler в общей dll
public class ErrorHandler
{
public static void ThrowError(Exception ex, string sitename, string ip, string username)
{
//if (ip != "127.0.0.1") // exclude local errors when developing
{
EILib.ExceptionServices.EIExceptionHandler eh = new EILib.ExceptionServices.EIExceptionHandler();
eh.TestEmail("senloe@....com");
}
}
}
и, наконец, мой global.asax, где все это начинается:
protected void Application_Error(object sender, EventArgs e)
{
//Get the Error.
System.Exception anError = Server.GetLastError();
EILib.ErrorHandler.ThrowError(anError, "mydomain.com", EILib.Utilities.GetUserHostAddress(Request), User.Identity.Name);
....
}