Windows 8의 IIS에서 WCF 서비스를 제공 할 수 없습니다.


199

Windows 8 컴퓨터의 IIS에서 WCF 서비스를 제공하려고하면 잘 알려진 오류가 발생합니다.

확장 구성으로 인해 요청한 페이지를 제공 할 수 없습니다. 페이지가 스크립트 인 경우 핸들러를 추가하십시오. 파일을 다운로드해야하는 경우 MIME 맵을 추가하십시오.

이전 해결 방법은 실행 aspnet_regiis -i했지만이 명령은 Windows 8에서 더 이상 사용되지 않아 응답을하지 않는 것 같습니다 This option is not supported on this version of the operating system. (...).

해결 방법은 무엇입니까?

(정규 aspx페이지를 이미 활성화 했으므로 대부분의 IIS 구성이 정상으로 보입니다.)


aspnet_regiis -iWindows 8 이전 사용자를위한 명령 에 대한 자세한 내용 은 다음 링크를 참조하십시오. aspsnippets.com/Articles/…
David

답변:


405

더 똑똑하지 않은 것처럼 보였습니다. Programs and Features -> Turn Windows features on or off제어판에서 WCF 서비스를 사용하도록 설정해야합니다 . 이 블로그 게시물 mdsn에 설명 된대로 이동하여 .NET Framework Advanced Services -> WCF Services활성화 하십시오 .HTTP Activation

명령 프롬프트 (admin으로)에서 다음을 실행할 수 있습니다.

C:\> DISM /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation
C:\> DISM /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation45

오류가 발생하면 아래를 사용하십시오

C:\> DISM /Online /Enable-Feature /all /FeatureName:WCF-HTTP-Activation
C:\> DISM /Online /Enable-Feature /all /FeatureName:WCF-HTTP-Activation45

6
IIS 관리자에서 시간을 보냈습니다. IIS 관리자는 사용자에게 .NET Framework Advnaced Services를 알려주거나 알려주는 아이콘이 있어야한다고 생각합니다.
Tony_Henrich

명령 프롬프트를 사용하여 "작업이 완료되었지만 WCF-HTTP- 활성화 기능이 활성화되지 않았습니다. 필요한 상위 기능이 활성화되지 않았을 수 있습니다. / enable-feature / all 옵션을 사용하여 각 상위 기능을 자동으로 활성화 할 수 있습니다. 상위 기능이 이미 사용 가능한 경우 추가 진단에 대해서는 로그 파일을 참조하십시오. " 내가 켜고있는 것을 알기 위해 대신 GUI 방법을 사용했으며 작동했습니다.
벤 아담스

5
벤 앤더슨과 같은 "필요한 부모 기능을 사용하지 못할 수 있습니다"라는 오류가 발생하여 오류 메시지에서 제안을 시도하여 ( /all인수 추가 ) 제대로 작동했습니다 DISM /Online /Enable-Feature /all /FeatureName:WCF-HTTP-Activation45.
Troy Gizzi

1
당신은 훌륭합니다. .Net Framework 버전에 따라이 작업을 수행 할 수도 있습니다. 마찬가지로.NET 3.5 Framework Advanced Services -> Windows Communication Foundation HTTP Activation
rion18

이것은 생명의 은인입니다. 이 문제에 대한 대부분의 온라인 솔루션은 웹 기능에서 .Net 3.5 Framework 만 활성화합니다. 충분하지 않은 것. 여기에 언급 된 단계를 수행해야합니다.
markaaronky

95

Windows Server 2012의 경우 솔루션은 faester와 매우 유사합니다 (위 참조). 서버 관리자에서을 클릭 Add roles and features하고 적절한 서버를 선택한 다음을 선택하십시오 Features. 아래 .NET Framework 4.5 Features에이 표시 WCF Services되고 그 아래 에이 표시 HTTP Activation됩니다.


감사합니다 ! 그러나 .Net 4는 어떻습니까? 이 기능을 사용하면 .Net v4.0에서도 동일하게 작동한다고 생각하십니까?
Aladdin Gallas

2
기존 웹 응용 프로그램에서는 Windows 기능을 추가 한 후 다음을 수행해야합니다.-inetmgr 시작- "핸들러 매핑"열기-확장자 * .svc에 대한 svc-ISAPI 매핑이 있는지 확인하십시오. 그렇지 않은 경우 "부모로 되돌리기"작업을 사용하여 부모 웹 사이트에서 복사하십시오. 이것은 일반적으로 IIS7 +의 경우처럼 사용자 지정 처리기 매핑이 응용 프로그램의 web.config에 구성되어 있다고 가정합니다. 그렇지 않으면 "Revert To Parent"를 실행할 때 손실됩니다.
Berend Engelbrecht

13

IIS 8.0에서 다음 두 단계를 수행하십시오.

새로운 MIME 유형 및 HttpHandler 추가

  1. 확장자 : .svc, MIME 유형 : application / octet-stream

  2. 요청 경로 : * .svc, 유형 : System.ServiceModel.Activation.HttpHandler, 이름 : svc-Integrated


.Net 3.5 (Http & Non-Http Activation) 및 WAS를 활성화하지 못하는 오래된 Windows 7 설치를위한 최상의 솔루션입니다. OS를 다시 설치하기에는 너무 섬세함
user919426

특히 자신 만의 핸들러를 만들고 추가 할 때이 방법에 대해 알아야합니다. 그러나 'Windows 기능 켜기 및 끄기'를 사용하면 알려진 파일 확장자가 대부분 확보되므로 각 파일 확장자를 개별적으로 추가하고 정확한 세부 정보를 찾는 시간을 절약 할 수 있습니다.
Daniel Hollinrake


3

이것은 실제로 faester의 솔루션과 Bill Moon의 솔루션과 동일한 솔루션이지만 PowerShell을 사용하여 수행하는 방법은 다음과 같습니다.

Import-Module Servermanager
Add-WindowsFeature AS-HTTP-Activation

물론 DISMPowerShell에서도 전화 를 걸 수 있습니다.


아주 좋아요 정보 주셔서 감사합니다.
Rod Hartzell

-1

이 코드를 ASP MVC의 web.config에 추가 할 수 있습니다

   <system.webServer>
    <staticContent>
      <remove fileExtension=".srt" />
      <mimeMap fileExtension=".srt" mimeType="text/srt" />
      <remove fileExtension=".vtt" />
      <mimeMap fileExtension=".vtt" mimeType="text/vtt" />
    </staticContent>
  </system.webServer>

파일 확장자를 사용하여 파일 확장자를 변경할 수 있습니다


안녕 @malik-확장 파일 매핑이 어떻게 svc-endpoints를 작동시킬 수 있는지 명확히 하시겠습니까?
faester

내가 올바르게 이해하면 원하는대로 확장을 변경할 수 있습니다. feedforall.com/mime-types.htm 에서 볼 수 있지만 다른 말을 할 것입니다. 미안하지만 이해할 수 없습니다.
malik masis
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.