오늘은 마침 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" /-->
[이 토픽에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]