오늘은 마침 ApplicationDiagram.sd를 다룰 일이 생겨서 오랜만에 추가를 해보았습니다. 그런데, 다음과 같은 오류 하나가 발생하면서 더 이상의 응용 프로그램 추가가 불가능한 상황이 발생했습니다.
Error 1
Application definition XXXXXXXXX is locked
because there is an error in D:\workshop\XXXXXXXXX\app.config.
An error occurred creating the configuration section handler for system.web/protocols:
Could not load type 'System.Web.Configuration.ProtocolsSection' from assembly
'System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.
(C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Config\machine.config line 76)
D:\workshop\XXXXXXXXX\app.config 1 1
관련해서 Google을 검색해 보았지만, 신통한 대답을 발견할 수는 없었는데요. 그래서, 찬찬희 오류 메시지를 뜯어보았습니다. 결국 문제는 "ProtocolsSection" 클래스를 로드할 수 없어서 발생한 것인데요. 이상한 것은 "system.web.dll"을 .NET Reflector를 통해서 살펴 보아도 찾을 수가 없었습니다. 제가 가진 "MSDN Library" 도움말에도 찾아볼 수 없었지만, 웹상의 다음의 MS 자료로는 기록이 남아 있었습니다.
ProtocolsSection Class
;
https://docs.microsoft.com/en-us/dotnet/api/system.web.configuration.protocolssection
.NET 3.0에서의 도움말이 나온 것인데요. 아무래도 CTP 버전이 진행되면서 한때 존재했다가 사라진 것이 아닌가 싶습니다. 혹시나,,, .NET 3.0 CTP 버전을 설치해 오셨던 분들에게도 동일하게 발생하지 않을까 싶은데요. 해결 방법은 위의 오류 메시지에서 알려주는 것처럼, machine.config 파일의 76라인에 있는 다음의 정의를 주석 처리하면 됩니다.
<!--section name="protocols"
type="System.Web.Configuration.ProtocolsSection,
System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
allowDefinition="MachineToWebRoot" /-->
[이 토픽에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]
No | Writer | Date | Cnt. | Title | File(s) |
11895 | 정성태 | 5/12/2019 | 22541 | .NET Framework: 832. ML.NET Model Builder - 회귀(Regression), 다중 분류(Multi-class classification) 예제 | 1 |
11894 | 정성태 | 5/10/2019 | 24504 | VS.NET IDE: 135. Visual Studio - ML.NET Model Builder 소개 [5] | |
11893 | 정성태 | 5/10/2019 | 20580 | 오류 유형: 535. C# 6.0 이상의 문법을 컴파일 시 오류가 발생한다면? | |
11892 | 정성태 | 5/10/2019 | 20490 | 웹: 38. HTTP Cookie의 expires 시간 형식(RFC7231) | |
11891 | 정성태 | 5/9/2019 | 23621 | .NET Framework: 831. (번역글) .NET Internals Cookbook Part 12 - Memory structure, attributes, handles | |
11890 | 정성태 | 5/8/2019 | 19272 | 개발 환경 구성: 439. "Visual Studio Enterprise is required to execute the test." 메시지와 관련된 코드 기록 | |
11889 | 정성태 | 5/8/2019 | 19310 | 개발 환경 구성: 438. mstest, QTAgent의 로그 파일 설정 방법 | |
11888 | 정성태 | 5/8/2019 | 37220 | .NET Framework: 830. C# - 비동기 호출을 취소하는 CancellationToken의 간단한 예제 코드 [1] | 1 |
11887 | 정성태 | 5/8/2019 | 23068 | .NET Framework: 829. C# - yield 문을 사용할 수 있는 메서드의 조건 | |
11886 | 정성태 | 5/7/2019 | 20117 | 오류 유형: 534. mstest.exe 실행 시 "Visual Studio Enterprise is required to execute the test." 오류 [2] | |
11885 | 정성태 | 5/7/2019 | 17593 | 오류 유형: 533. mstest.exe 실행 시 "File extension specified '.loadtest' is not a valid test extension." 오류 발생 | |
11884 | 정성태 | 5/5/2019 | 22509 | .NET Framework: 828. C# DLL에서 Win32 C/C++처럼 dllexport 함수를 제공하는 방법 - 두 번째 이야기 | |
11883 | 정성태 | 5/3/2019 | 27514 | .NET Framework: 827. C# - 인터넷 시간 서버로부터 받은 시간을 윈도우에 적용하는 방법 | 1 |
11882 | 정성태 | 5/2/2019 | 23967 | .NET Framework: 826. (번역글) .NET Internals Cookbook Part 11 - Various C# riddles | 1 |
11881 | 정성태 | 4/28/2019 | 24076 | 오류 유형: 532. .NET Core 프로젝트로 마이그레이션 시 "CS0579 Duplicate 'System.Reflection.AssemblyCompanyAttribute' attribute" 오류 발생 | |
11880 | 정성태 | 4/25/2019 | 19820 | 오류 유형: 531. 이벤트 로그 오류 - Task Scheduling Error: m->NextScheduledSPRetry 1547, m->NextScheduledEvent 1547 | |
11879 | 정성태 | 4/24/2019 | 28745 | .NET Framework: 825. (번역글) .NET Internals Cookbook Part 10 - Threads, Tasks, asynchronous code and others | 2 |
11878 | 정성태 | 4/22/2019 | 24001 | .NET Framework: 824. (번역글) .NET Internals Cookbook Part 9 - Finalizers, queues, card tables and other GC stuff | 1 |
11877 | 정성태 | 4/22/2019 | 24207 | .NET Framework: 823. (번역글) .NET Internals Cookbook Part 8 - C# gotchas | 1 |
11876 | 정성태 | 4/21/2019 | 22496 | .NET Framework: 822. (번역글) .NET Internals Cookbook Part 7 - Word tearing, locking and others | 1 |
11875 | 정성태 | 4/21/2019 | 24311 | 오류 유형: 530. Visual Studo에서 .NET Core 프로젝트를 열 때 "One or more errors occurred." 오류 발생 | |
11874 | 정성태 | 4/20/2019 | 24337 | .NET Framework: 821. (번역글) .NET Internals Cookbook Part 6 - Object internals | 1 |
11873 | 정성태 | 4/19/2019 | 23006 | .NET Framework: 820. (번역글) .NET Internals Cookbook Part 5 - Methods, parameters, modifiers | 1 |
11872 | 정성태 | 4/17/2019 | 23887 | .NET Framework: 819. (번역글) .NET Internals Cookbook Part 4 - Type members | 1 |
11871 | 정성태 | 4/16/2019 | 21793 | .NET Framework: 818. (번역글) .NET Internals Cookbook Part 3 - Initialization tricks [3] | 1 |
11870 | 정성태 | 4/16/2019 | 20674 | .NET Framework: 817. Process.Start로 실행한 콘솔 프로그램의 출력 결과를 얻는 방법 | 1 |