다음을 통해 공유


IIS 호스팅 서비스 실패

IIS 호스팅 서비스가 실패하면 다음과 같은 증상이 나타날 수 있습니다.

  • .svc 파일을 찾을 때 파일이 인식되지 않으면 브라우저에 빈 페이지가 표시되거나 다음 예제와 같이 서비스의 도움말 페이지 대신 파일의 텍스트가 표시됩니다.

    <%@ServiceHost language=c# Debug="true" Service="Microsoft.ServiceModel.Samples.CalculatorService" %>
    
  • 웹 호스팅 서비스에 액세스하려고 하면 다음과 같은 예외가 발생할 수 있습니다.

    Unhandled Exception: System.ServiceModel.ProtocolException: The remote server returned an unexpected response: (405) Method not allowed.
    

    일반적으로 ASP.NET이 설치되어 있지 않거나 .svc 파일 형식이 aspnet_isapi.dll에 매핑되지 않은 경우에 발생합니다.
    이러한 문제를 해결하려면 IIS의 웹 서비스 확장으로 aspnet_isapi를 사용해야 합니다. IIS 관리자를 사용하거나 .NET Framework 설치 디렉터리에서 aspnet_regiis –i –enable을 실행하여 이 설정을 보고 수정할 수 있습니다. 설정을 보고 수정한 다음에는 ASP.NET이 실행되고 있는지 확인합니다. 이렇게 하려면 test .aspx 파일을 \inetpub\wwwroot 디렉터리에 넣고 브라우저로 찾을 수 있는지 확인합니다.

  • WCF(Windows Communication Foundation)를 설치한 후 IIS를 설치한 경우에는 다음 명령을 실행해야 합니다.

    "%WINDIR%\Microsoft.Net\Framework\v3.0\Windows Communication Foundation\ServiceModelReg.exe" -r
    

    그러면 필요한 스크립트 맵이 IIS에 등록됩니다.
    또한 .svc 파일 형식이 aspnet_isapi.dll에 매핑되었는지 확인해야 합니다.

svc 파일 형식을 매핑하여 IIS 5.1 또는 6.0에서 aspnet_isapi.dll에 의해 처리되도록 하려면

  1. 제어판에서 컴퓨터 관리를 엽니다.

  2. 서비스 및 응용 프로그램, 인터넷 정보 서비스를 확장합니다.

  3. 웹 사이트를 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다.

  4. 홈 디렉터리 탭에서 구성을 클릭합니다.

  5. 응용 프로그램 매핑 목록에서 .svc 파일이 aspnet_isapi.dll에 매핑되었는지 확인합니다. 파일이 매핑되지 않은 경우 다음 작업을 수행합니다.

    1. 추가를 클릭합니다.
    2. 응용 프로그램 확장 매핑 추가/편집 대화 상자에서 찾아보기를 클릭합니다.
    3. aspnet_isapi.dll이 포함된 폴더를 찾고 열기를 클릭합니다.
    4. .svc를 확장명으로 지정합니다.
    5. 파일이 있는지 확인이 선택 취소되어 있는지 확인합니다.
    6. 확인을 클릭하고 다시 확인을 클릭하여 웹 사이트 속성 대화 상자로 돌아갑니다.
  6. 확인을 클릭하여 대화 상자를 닫습니다.

IIS 7.0에서 svc 파일 형식이 제대로 매핑되는지 확인하려면

  1. 명령 프롬프트 창을 열고 start inetmgr을 입력하여 IIS(인터넷 정보 서비스) MMC 스냅인을 엽니다.

  2. 왼쪽 창에서 컴퓨터 이름이 있는 노드를 확장하고 웹 사이트 노드를 확장한 다음 기본 웹 사이트를 선택합니다.

  3. 기능 뷰에서 처리기 매핑을 두 번 클릭합니다.

  4. 응용 프로그램 매핑 목록에서 .svc 파일이 aspnet_isapi.dll에 매핑되었는지 확인합니다. 파일이 매핑되지 않은 경우 다음 작업을 수행합니다.

    1. 관리되는 처리기 추가를 클릭합니다.
    2. **요청 경로:**에 *.svc를 입력합니다.
    3. 형식 텍스트 상자에 System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089를 입력합니다.
    4. 이름: 텍스트 상자에 svc-Integrated를 입력합니다.
    5. 확인을 클릭합니다.
    6. 스크립트 맵 추가를 클릭합니다.
    7. **요청 경로:**에 *.svc를 입력합니다.
    8. 실행 파일: 텍스트 상자에 %SystemRoot%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll을 입력합니다.
    9. 이름: 텍스트 상자에 svc-ISAPI-2.0을 입력합니다.
    10. 위로 이동/아래로 이동 컨트롤을 사용해 목록에서 관리되는 처리기(svc-Integrated)가 aspnet_isapi(svc-ISAPI-2.0) 처리기 앞에 나오도록 순서를 지정합니다.
    11. 확인을 클릭합니다.

참고 항목

개념

인터넷 정보 서비스 호스팅 지침

Send comments about this topic to Microsoft.
© 2007 Microsoft Corporation. All rights reserved.