2014-12-09 4 views
0

나는이 단순히 버튼을 클릭하면 "안녕하세요"를 표시합니다 내 ASP.NET 웹 사이트에 다음 코드 :Ajax 호출은 내부 서버 오류를 생산하고 500

ASPX 파일 :

  $.ajax({ 
       type: "POST", 
       url: "WebService1.asmx/HelloWorld", 
       data: "{}", 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       success: function (response) 
       { 
        alert(response.d); 
       }, 
       error: function (response) { 
        alert(response.d); 
       } 
      }); 
을 파일 뒤에

.CS 코드 : 그것은 내 PC (출시 F에서 로컬로 실행 될 때마다이 잘 작동

 /// <summary> 
    /// Summary description for WebService1 
    /// </summary> 
    [WebService(Namespace = "http://tempuri.org/")] 
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 
    [System.ComponentModel.ToolboxItem(false)] 
    [System.Web.Script.Services.ScriptService] 
    public class WebService1 : System.Web.Services.WebService 
    { 

     [WebMethod] 
     public string HelloWorld() 
     { 
      return "Hello World"; 
     } 
    } 

rom Visual Studio Debugger)하지만 웹 사이트를 호스팅 회사의 라이브 서버에 배포하면 작동하지 않습니다.

나는 아약스 오류 함수에서 응답을 볼 수있는 크롬 디버깅 도구를 사용하고 내가

나는 그것이 작동하기 때문에 무슨 일이 잘못된 것입니다 확실하지 않다에 "500이 내부 서버 오류"를 얻을 보여줍니다 로컬이지만 라이브 서버에는 없습니다. 사용할 Web.Config 설정이 있습니까 ??

답변

0

예, <configuration>에서, 당신의 Web.config 다음에 추가해야합니다

<system.webServer> 
    <httpErrors errorMode="Detailed" /> 
    <asp scriptErrorSentToBrowser="true"/> 
</system.webServer> 
<system.web> 
    <customErrors mode="Off"/> 
    <compilation debug="true"/> 
    <deployment retail="false" /> 
</system.web> 

이 코드를 생성하는 런타임 오류가 있습니다, 그것은 코드에서 오는 것 같지 않습니다 당신 게시했습니다. 위의 스 니펫을 올바른 위치에 추가하면 근본 원인을 추적하는 데 도움이됩니다.

<deployment retail="false" />은 불필요 할 수 있습니다. 코드를 호스팅하는 컴퓨터에서이 값이 true 인 경우이 코드는 machine.config입니다. 그렇다면 web.config의 다른 customErrors 설정보다 우선합니다. 있을 법하지는 않지만, 나는 단지 안전 측면에 추가했다.

+0

나는 이것들이 이미 켜져 있음을 알았다. 오류의 출력을 어떻게 볼 수 있습니까 ?? –

+0

제 편집을 참조하십시오. – Omer

+0

언제 페이지를로드 할 때 오류가 발생했습니다 : "서버 오류 '/'응용 프로그램." 파서 오류 메시지 : allowDefinition = 'MachineOnly'machine.config 이상으로 등록 된 섹션을 사용하면 오류가 발생합니다. 다른 스위치는 오류를 강조 표시하지 않습니다 –