2010-07-21 7 views
0

프로덕션 환경에서 내 asp.net 응용 프로그램에서만 호출 할 때 내 웹 서비스가 올바르게 작동하지 않는 이유를 파악하는 데 문제가 있습니다.문제 디버깅 asp.net 웹 서비스

로컬로 내 asp.net 응용 프로그램을 실행할 수 있으며 프로덕션 환경에서 웹 서비스를 호출하면 올바르게 완료됩니다.

프로덕션 웹 서비스에서 테스트 폼을 사용할 수 있도록 web.config를 수정할 수 있으며 올바르게 호출됩니다.

공유 dll에서 웹 서비스를 호출하고 있으며 실제로 업데이트 된 dll을 받고 있는지 확인합니다.

다른 곳에서 처리되지 않는 사이트에서 예외를 기록하는 매우 기본적인 웹 서비스입니다. 추가 매개 변수를 추가하고 다른 프로젝트로 이동하여 더 많은 웹 서비스와 그룹화합니다. 그것은 ExceptionServices

내 공유 DLL라는 그 자체가 ASMX 파일에있는 것은 (이 시점에서, 시험 방법)를 호출하는 클래스 ErrorHandlerTestEmail(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); 
     .... 
    } 
+0

어떤 종류의 오류 메시지가 나옵니까? 이벤트 로그의 내용은 무엇입니까? 아니면 완전히 조용한 실패입니까? – ThatBlairGuy

+0

오류를 찾을 수 없습니다. 솔루션은 Rackspace에서 호스팅되므로 이벤트 로그에 어떤 형태로든 액세스 할 수 있다고 생각하지 않습니다. 나는 웹 서비스에 대한 추적을 가능하게했다. localhost에서 호출을 볼 수 있지만 프로덕션에서는 볼 수 없으므로 웹 서비스가 호출되지 않습니다. 모든 경로가 올바르게 보이고 웹 응용 프로그램의 추적 출력에 아무 것도 표시되지 않습니다. – earthling

+0

그 밖의 모든 것이 실패 할 경우 항상 디버깅 문을 텍스트 파일에 작성하는 완전히 매끄러운 솔루션이 있습니다. – ThatBlairGuy

답변

1

프로덕션 서버에서 SMTP 서비스가 실행 중인지 확인하십시오. 기본 자격 증명을 허용하도록 구성되었는지 확인하십시오 (호스팅 회사에서 전자 메일에 대한 자격 증명이 필요할 수 있음). 픽업 디렉터리 전달 방법 중 하나를 사용하는 대신 로컬 컴퓨터에서 메일을 받도록 서비스가 구성되어 있는지 확인하십시오.

+0

SMTP가 문제가 아닙니다. 시험지를 사용하여 이메일을 보낼 수 있습니다. 또한 localhost에서 실행중인 응용 프로그램에서 웹 서비스를 성공적으로 호출 할 수 있습니다. 또한 동일한 서버에서 호스팅되는 이전 웹 서비스에서도 전자 메일을 보냈습니다. – earthling

+0

구성 문제 여야합니다. 웹 서비스가 독립적으로 작동하면 호출하는 코드가있는 것입니다. 웹 서비스에 대한 참조를 포함하는 실행 파일이 config에 올바른 URL을 가지고 있습니까? (아직도 구식 서비스를 가리키고 있는가?) – ThatBlairGuy

+0

새 서비스를 추가 할 때 이전 서비스를 제거했습니다. 또한 정확한 URL이 있는지 확인했습니다. Web References 폴더에있는 파일들을 엿보고 어디에서 URL을 보았는지, 그것이 올바른 것입니다. – earthling