IIS에서 .svc 파일에 액세스 할 때 HTTP 404


87

최근에 Visual Studio 2008에서 테스트했을 때 잘 작동하는 WCF 서비스를 만들었습니다.하지만 프로젝트를 IIS에 배포하고 IIS에서 .svc 파일에 액세스하려고하면이 오류가 발생합니다.

"Server Error in '/' Application.The resource cannot be found.  "

지난 4 일 동안이 문제가 발생했습니다.

IIS 관리자의 처리기 매핑에서 .svc에 대한 두 개의 항목을 볼 수 있습니다.

svc-Integrated and svc-ISAPI-2.0

답변:


75

SVC 확장에 대한 매핑을 ASP.NET에 추가해야합니다. 가장 쉬운 방법 ServiceModelReg.exe -i은 C : \ Windows \ Microsoft.NET \ Framework \ v3.0 \ Windows Communication Foundation에서 실행하는 것입니다. ASP.NET을 아직 활성화하지 않은 경우 활성화해야 할 수도 있습니다.


Windows Server 2012 또는 2016을 사용하는 경우 대신 다음 지침을 따르십시오.


나중에 IIS를 다시 시작 했습니까?
tvanfosson

이제 .svc에 대한 MIME 매핑이 있습니까?
tvanfosson

MIME 매핑이 아닙니다. 애플리케이션 확장 매핑입니다. msdn.microsoft.com/en-us/library/ms752252(v=vs.90).aspx를 참조 하십시오 .
Michael Freidgeim

22
중요 : .NET 4.5가 설치된 Server 2012에서는이 작업을 수행하지 마십시오. ServiceModelReg.exe -ua를 실행할 때까지 나를 망쳤습니다. Server 2012 솔루션은 여기를 참조하십시오 : stackoverflow.com/questions/11116134/…
Scott Anderson

110

나를 위해 일한 것, Windows 2012 Server R2에서 :

WCF HTTP 404

감사합니다 "Aaron D"


4
지금까지 가장 쉬운 옵션입니다.
BIDeveloper

그것은 Win10, Win8.1 데스크톱 및 Win2012 서버에서 저에게 효과적이었습니다. :) 감사합니다!
Skipper

그것은 Win10, Win8.1 데스크톱 및 Win2012 서버에서 저에게 효과적이었습니다. :) 감사합니다!
Skipper

2
어떤 이유로 나는 3.5와 4.5, 그리고 커맨드 라인을 통해 기능을 설치해야했습니다 : dism /online /enable-feature /featurename:WCF-http-Activation45 /all 그리고 또한 dism /online /enable-feature /featurename:WCF-http-Activation /all
Rocklan

1
Sever 2019에서도 작동합니다
Zar Shardan 19.11.07

56

이 단계를 나타내는 블로그 게시물 에서 다음 지침을 찾았 습니다 . 이는 저에게 효과적이었습니다 (Windows 8, 64 비트).

Windows 기능에서 .Net 프레임 워크 아래의 WCF 옵션이 모두 선택되어 있는지 확인합니다. 따라서 제어판 –> 프로그램 및 기능 –> Windows 기능 켜기 / 끄기 –> 기능 –> 기능 추가 –> .NET Framework XX 기능으로 이동합니다. .Net 프레임 워크가 설치되어 있는지 확인하고 그 아래에있는 WCF 활성화 노드가 선택되어 있고 (확인란 선택) WCF 활성화 아래의 두 옵션도 모두 선택되어 있는지 확인합니다.
이것들은:
* HTTP 활성화
* 비 HTTP 활성화
두 옵션을 모두 선택해야합니다 (확인란이 선택됨).

2
내가 이것을 한 번 이상 찬성 할 수 있다면 이것은 나를 NUTS, 건배!
Chris W.

4

나는 당신이 이미 당신의 문제를 해결했음을 알지만 후대를 위해 :

비슷한 문제가 발생했으며 SVC 처리기가 이미 올바르게 설치되었습니다. 우리의 문제는 요청이 SVC 핸들러에 도달하기 전에 요청을 처리하는 ExtensionlessUrl 핸들러였습니다.

이를 확인하려면-웹 서버 수준의 IIS 관리자의 처리기 매핑에서 처리기 목록을 순서대로 봅니다 (오른쪽에있는 옵션). 다양한 ExtensionlessUrl 처리기가 SVC 처리기 위에 나타나면 아래쪽에 올 때까지 반복해서 아래로 이동합니다.


1

디렉터리가 응용 프로그램으로 변환되었는지 확인합니다.


1

오늘도 같은 문제가 발생했습니다.

저에게 해결책은 IIS로 이동하여 새 웹 사이트 이름을 마우스 오른쪽 단추로 클릭하고 속성, ASP.Net을 선택한 다음 ASP.Net 버전을 "1.1.4322"(기본값으로 설정)에서 변경하는 것이 었습니다. 2.0.50727로.

이 작업을 마치면 .svc 파일을 마우스 오른쪽 버튼으로 클릭하고 "찾아보기"를 클릭하여 친숙한 서비스 웹 페이지를 볼 수 있습니다.


1

Windows 10에서 IIS 6 관리 호환성을 활성화 한 후에도 문제가 될 수 있습니다. WCF 서비스에서 프레임 워크 HTTP 활성화를 설정하면 문제가 해결됩니다.


0

필자의 경우 applicationhost.config 파일 (\ System32 \ inetsrv \ config)의 잘못된 매핑 설정으로 인해 오류가 발생했습니다. 어떤 이유로 Visual Studio 2013은 IIS에서 가상 디렉터리를 만드는 동안 손상되었습니다. 수정 사항은 파일의 사이트 섹션을 수동으로 편집하는 것이 었습니다.


0

서버 2012의 역할 / 기능 추가 기능 아래에 2 개의 .net 프레임 워크 버전이 있습니다.

ㅏ. 3.5

비. 4.5

사용되는 프레임 워크에 따라 WCF 서비스에서 HTTP 활성화를 활성화 할 수 있습니다. :)


0

제 경우에는 Win 10. 파일 applicationHost.config가 VS 2012에 의해 손상되었습니다. 그리고 C : \ inetpub \ history에서이 파일의 기록을 얻을 수 있습니다. 그런 다음 IIS를 다시 시작하면 제대로 작동합니다.


0

요청 필터링 설정에서 허용 된 확장명에 .svc 확장명을 추가해야했습니다 (이전에 404.7 오류가 있음).

여기에 이미지 설명 입력


0

요청 필터링에서 허용되는대로 .svc 접미사를 추가하면 나에게 트릭이 생겼습니다.


0

위의 솔루션 중 어느 것도 나를 위해이 오류를 해결하지 못했습니다. web.config에서 다음을 설정해야했습니다.

system.servicemodel > bindings > webHttpBinding > binding:
<security mode="Transport">
  <transport clientCredentialType="None" />
</security>

이 기회를 빌어 .NET Framework에 엄청난 혼란을 일으키고 개발자의 삶을 너무나도 비참하게 만든 마이크로 소프트를 다시 한번 저주하고 싶습니다!

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.