프로덕션 환경에서 내 asp.net 응용 프로그램에서만 호출 할 때 내 웹 서비스가 올바르게 작동하지 않는 이유를 파악하는 데 문제가 있습니다.문제 디버깅 asp.net 웹 서비스
로컬로 내 asp.net 응용 프로그램을 실행할 수 있으며 프로덕션 환경에서 웹 서비스를 호출하면 올바르게 완료됩니다.
프로덕션 웹 서비스에서 테스트 폼을 사용할 수 있도록 web.config를 수정할 수 있으며 올바르게 호출됩니다.
공유 dll에서 웹 서비스를 호출하고 있으며 실제로 업데이트 된 dll을 받고 있는지 확인합니다.
다른 곳에서 처리되지 않는 사이트에서 예외를 기록하는 매우 기본적인 웹 서비스입니다. 추가 매개 변수를 추가하고 다른 프로젝트로 이동하여 더 많은 웹 서비스와 그룹화합니다. 그것은 ExceptionServices
내 공유 DLL라는 그 자체가 ASMX 파일에있는 것은 (이 시점에서, 시험 방법)를 호출하는 클래스 ErrorHandler
TestEmail(string to)
을 가지고있다 않는다는 것을 모두가 나에게 이메일을 보냅니다.
내가 말했듯이, 내 로컬에서 응용 프로그램을 실행할 때, 그것은 프로덕션 웹 서비스를 호출하고 모두 좋다.
호스트 된 환경에서 실행 중이며 원격 디버깅 도구를 설치할 수 없어 프로덕션 코드를 단계별로 실행할 수 없습니다 (아무도 모르는 경우는 제외). 이 (키보드에 머리를 두드리는 )를 작동해야처럼
은 그냥 여기
내 기본 웹 방법입니다 ... 보인다 공유 DLL에서[WebMethod]
public void TestEmail(string to)
{
MailMessage mm = new MailMessage("[email protected]", 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 클래스
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("[email protected]");
}
}
}
그리고 마지막으로 내 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);
....
}
어떤 종류의 오류 메시지가 나옵니까? 이벤트 로그의 내용은 무엇입니까? 아니면 완전히 조용한 실패입니까? – ThatBlairGuy
오류를 찾을 수 없습니다. 솔루션은 Rackspace에서 호스팅되므로 이벤트 로그에 어떤 형태로든 액세스 할 수 있다고 생각하지 않습니다. 나는 웹 서비스에 대한 추적을 가능하게했다. localhost에서 호출을 볼 수 있지만 프로덕션에서는 볼 수 없으므로 웹 서비스가 호출되지 않습니다. 모든 경로가 올바르게 보이고 웹 응용 프로그램의 추적 출력에 아무 것도 표시되지 않습니다. – earthling
그 밖의 모든 것이 실패 할 경우 항상 디버깅 문을 텍스트 파일에 작성하는 완전히 매끄러운 솔루션이 있습니다. – ThatBlairGuy