2011-08-31 7 views
1

ASP.NET 2.0 웹 서비스가 web.config에서 appSettings 값을 읽을 수없는 상황을 아는 사람이 있습니까? 나는 그 문제를 정확히 가지고있는 것 같다. 코드는 appSettings가 비어있을 때 비어 있다고 생각한다. 구체적으로ASP.NET 웹 서비스에서 appSettings를 볼 수 없습니다.

:이 코드 :

Dim settings = ConfigurationManager.AppSettings 
    Dim count = settings.Count ' always gives zero 

잘못 응용 프로그램의 설정에 데이터가없는 것을 알 수있다.

내 웹 설정이

<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0"> 
    <!-- lots of other stuff --> 
    <appSettings> 
    <add key="SomeKey" value="Some Data" /> 
    <!-- other keys --> 
    </appSettings> 
</configuration> 

나는 코드가 파일에서 모든 주석의 간단한 장치에 의해 web.config 파일을 (볼 수 있다는 것을 확인하고, 보는 것처럼 보이는 내가하려고 할 때 서비스를 실행하려면 web.config가 유효하지 않다고 불평합니다.

코드는 원칙적으로 내 컴퓨터에서 작동하지 않는 프로덕션 코드이므로 문제는 내 환경과 관련이 있다고 생각합니다. 코드에 거의 문제가없는 것 같습니다.

+0

생산 코드에서 개발 코드로 변경된 사항이 있습니까? –

답변

1

아, 그 이유는 어리석게 간단했다. VB 코드를 다시 컴파일해야했습니다! 무슨 일이 있었는지, 내가 (정확하게, 일어난대로) VB 코드에 아무런 문제가 없다는 것을 확신했기 때문에 web.config 및 IIS 설정을 사용하여 모든 노력을 기울였습니다. 아마도 내 컴퓨터와 알려진 라이브 프로그램간에 차이가있을 수 있습니다. 결국 나는 그것을 포기하고 일시적으로 하드 코드 된 값을 사용하도록 VB 코드를 변경하여 해결하기로 결정했습니다. 내가 그 일을하고 재건하자마자, 프로그램이 이제 appSettings를 올바로 선택했음을 발견했다. (그리고 나의 해킹은 불필요하게되었다.)

제 생각 엔 VB 코드가 web.config에서 분리되어 다시 컴파일해야 다시 연결된다는 것입니다. 필자는 ASP.NET이 자동으로 web.config의 변경 사항을 감지하여 어쨌든 재 컴파일한다고 생각했기 때문에 다소 의아해했습니다.

ASP.NET에서 어떤 일이 벌어지고 있는지 설명하여 호기심을 충족시킬 수 있다면 web.config를 올바르게 읽는 데 필요한 명시 적 코드 재 컴파일이 필요할 수 있으므로 그 대답으로 표시하겠습니다. 내 원래의 질문에. (아무도 하루가 지나면 아무 것도하지 않으면이 게시물을 답으로 표시 할 것입니다.)

관련 문제