Microsoft MVP성태의 닷넷 이야기
글쓴 사람
홈페이지
첨부 파일
 

비주얼 스튜디오 - Failed to register URL "http://localhost:6879/" for site "..." application "/". Error description: Access is denied. (0x80070005)

예전에 했던 프로젝트를 최근에 로드해서 F5 디버깅을 시도했더니, 다음과 같은 오류가 발생합니다.

Unable to launch the IIS Express Web server.

Output from IIS Express:
Failed to register URL "http://localhost:6879/" for site "WebApplication1" application "/". Error description: Access is denied. (0x80070005)

해당 포트로 등록하는데 실패했다는 것이 좀 이해가 안 되는군요. "localhost"이므로 별도의 urlacl 항목이 필요 없기 때문에 "Failed to register"가 발생할 이유는 없습니다. 게다가... 예전 글에서 설명했던 방법을 이용해 그 포트를 urlacl에 등록하기까지 했었습니다.

IIS Express - localhost 이외의 호스트 이름으로 접근하는 방법
; https://www.sysnet.pe.kr/2/0/1030

그래서 다음과 같은 설정이 있었는데도,

// netsh http add urlacl url=http://*:6879/ user="testuser"

Reserved URL            : http://*:6879/
        User: TESTPC\testuser
            Listen: Yes
            Delegate: No
            SDDL: D:(A;;GX;;;S-1-5-21-531704745-1234150627-1213840556-1001)

오류가 발생한 것입니다.




재미있는 건 저 설정이 있었기 때문에 "Failed to register URL "http://localhost:6879/" 오류가 발생한다는 사실입니다. 따라서 저 항목을 삭제하면 이 문제가 해결됩니다.

netsh http delete urlacl ur=http://*:6879/

만약 urlacl 항목을 살리고 싶다면, "applicationhost.config" 파일을 수정하는 방법도 있습니다. 예를 들어, 비주얼 스튜디오가 디버깅 시에 실행한 iisexpress.exe의 명령행을 보면,

"C:\Program Files\IIS Express\iisexpress.exe"  /config:"c:\temp\testdir\WebApplication1\.vs\WebApplication1\config\applicationhost.config" /site:"WebApplication1" /apppool:"Clr4IntegratedAppPool"

"c:\temp\testdir\WebApplication1\.vs\WebApplication1\config\applicationhost.config" 파일의 경로가 나오는데, 이 파일을 메모장으로 열어 다음의 항목을 찾아 "localhost" 바인딩을 삭제하면 됩니다.

// 변경 전
<site name="WebApplication1" id="2">
    <application path="/" applicationPool="Clr4IntegratedAppPool">
        <virtualDirectory path="/" physicalPath="c:\temp\testdir\WebApplication1\WebApplication1" />
    </application>
    <bindings>
        <binding protocol="http" bindingInformation="*:6879:localhost" />
        <binding protocol="https" bindingInformation="*:44308:localhost" />
    </bindings>
</site>

// 변경 후
<site name="WebApplication1" id="2">
    <application path="/" applicationPool="Clr4IntegratedAppPool">
        <virtualDirectory path="/" physicalPath="c:\temp\testdir\WebApplication1\WebApplication1" />
    </application>
    <bindings>
        <binding protocol="http" bindingInformation="*:6879:" />
        <binding protocol="https" bindingInformation="*:44308:localhost" />
    </bindings>
</site>

물론 위와 같이 바꾸면, 이제는 반드시 urlacl에 해당 포트의 항목이 등록되어 있어야 합니다.




참고로, 포트 바인딩 앞의 "*", "+" 접두사의 차이는 다음의 글에서 확인할 수 있습니다.

What's the difference between http://*:80 and http://+:80
; https://stackoverflow.com/questions/4598164/whats-the-difference-between-http-80-and-http-80

Difference between http://+:8080/ and http://*:8080/
; https://stackoverflow.com/questions/9459656/difference-between-http-8080-and-http-8080





[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]





[최초 등록일: ]
[최종 수정일: 9/11/2019 ]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer@outlook.com

비밀번호

댓글 쓴 사람
 




1  2  3  4  5  6  7  [8]  9  10  11  12  13  14  15  ...
NoWriterDateCnt.TitleFile(s)
11883정성태5/3/2019964.NET Framework: 827. C# - 인터넷 시간 서버로부터 받은 시간을 윈도우에 적용하는 방법파일 다운로드1
11882정성태5/9/2019660.NET Framework: 826. (번역글) .NET Internals Cookbook Part 11 - Various C# riddles파일 다운로드1
11881정성태4/28/2019890오류 유형: 532. .NET Core 프로젝트로 마이그레이션 시 "CS0579 Duplicate 'System.Reflection.AssemblyCompanyAttribute' attribute" 오류 발생
11880정성태4/25/2019568오류 유형: 531. 이벤트 로그 오류 - Task Scheduling Error: m->NextScheduledSPRetry 1547, m->NextScheduledEvent 1547
11879정성태10/21/2019736.NET Framework: 825. (번역글) .NET Internals Cookbook Part 10 - Threads, Tasks, asynchronous code and others파일 다운로드1
11878정성태5/9/2019738.NET Framework: 824. (번역글) .NET Internals Cookbook Part 9 - Finalizers, queues, card tables and other GC stuff파일 다운로드1
11877정성태5/9/2019739.NET Framework: 823. (번역글) .NET Internals Cookbook Part 8 - C# gotchas파일 다운로드1
11876정성태5/9/2019644.NET Framework: 822. (번역글) .NET Internals Cookbook Part 7 - Word tearing, locking and others파일 다운로드1
11875정성태4/21/2019527오류 유형: 530. Visual Studo에서 .NET Core 프로젝트를 열 때 "One or more errors occurred." 오류 발생
11874정성태5/9/2019651.NET Framework: 821. (번역글) .NET Internals Cookbook Part 6 - Object internals파일 다운로드1
11873정성태5/9/2019609.NET Framework: 820. (번역글) .NET Internals Cookbook Part 5 - Methods, parameters, modifiers파일 다운로드1
11872정성태5/9/2019776.NET Framework: 819. (번역글) .NET Internals Cookbook Part 4 - Type members파일 다운로드1
11871정성태5/9/2019835.NET Framework: 818. (번역글) .NET Internals Cookbook Part 3 - Initialization tricks [3]파일 다운로드1
11870정성태4/16/2019699.NET Framework: 817. Process.Start로 실행한 콘솔 프로그램의 출력 결과를 얻는 방법파일 다운로드1
11869정성태5/9/2019712.NET Framework: 816. (번역글) .NET Internals Cookbook Part 2 - GC-related things파일 다운로드1
11868정성태4/15/2019689.NET Framework: 815. CER(Constrained Execution Region)이란?파일 다운로드1
11867정성태4/15/2019648.NET Framework: 814. Critical Finalizer와 SafeHandle의 사용 의미파일 다운로드1
11866정성태4/9/20191170Windows: 159. 네트워크 공유 폴더(net use)에 대한 인증 정보는 언제까지 유효할까요?
11865정성태4/9/2019624오류 유형: 529. 제어판 - C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools is not accessible.
11864정성태4/9/2019656오류 유형: 528. '...' could be '0': this does not adhere to the specification for the function '...'
11863정성태4/9/2019809디버깅 기술: 127. windbg - .NET x64 EXE의 EntryPoint
11862정성태4/7/2019686개발 환경 구성: 437. .NET EXE의 ASLR 기능을 끄는 방법
11861정성태4/6/2019785디버깅 기술: 126. windbg - .NET x86 CLR2/CLR4 EXE의 EntryPoint
11860정성태4/5/20191189오류 유형: 527. Visual C++ 컴파일 오류 - error C2220: warning treated as error - no 'object' file generated
11859정성태4/4/2019881디버깅 기술: 125. WinDbg로 EXE의 EntryPoint에서 BP 거는 방법
11858정성태3/27/2019841VC++: 129. EXE를 LoadLibrary로 로딩해 PE 헤더에 있는 EntryPoint를 직접 호출하는 방법파일 다운로드1
1  2  3  4  5  6  7  [8]  9  10  11  12  13  14  15  ...