2016-08-03 1 views
0

문제 :Web.config : 중요한 설정

내 Facebook 클라이언트 암호를 사용하여 IIS를 사용하여 로컬로 ASP.NET MVC 사이트를 실행하고 싶습니다. 페이스 북 클라이언트를 소스 컨트롤에서 비공개로 유지하고 싶습니다. 이 모든 것을 Azure에 게시하고 있으므로 Cloud에서 웹 서버를 실행할 때 아무런 문제가 없습니다. 민감한 설정은 App 서비스로 곧바로 들어가며 소스 컨트롤에서는 볼 수 없습니다.

원칙적으로 소스 제어에서 클라이언트를 비밀로 유지하는 것은 쉽습니다.

<appSettings configSource="facebookClientSecret.config" /> 

을 내 모든 설정은 .gitignore에 추가됩니다 facebookClientSecret.config로 갈 수있다 : 나는 단지의 Web.config에 내 응용 프로그램 설정에 설정 소스를 추가 할 수 있습니다.

거기에 문제가 있습니다. 내 모든 설정이입니다. 소스 제어에서 모든 설정을 숨기고 싶지 않습니다. 민감한 설정 만 숨기십시오. 나는이 일을 시도

:

<appSettings> <add key="webpages:Version" value="3.0.0.0" /> <add key="webpages:Enabled" value="false" /> <add key="ClientValidationEnabled" value="true" /> <add key="UnobtrusiveJavaScriptEnabled" value="true" /> <add configSource="facebookAppSecret.config" /> <add key="StorageConnectionString" value="UseDevelopmentStorage=true" /> </appSettings>

하지만 분명히 그 "수 없습니다"입니다. 앱 설정의 하위 집합을 별도의 파일에서 가져 오는 방법이 있습니까?

답변

2

file 속성이 있습니다. appSettings은 청구서를 잘 맞습니다.

<appSettings file="facebookAppSecret.config"> 
    <add key="webpages:Version" value="3.0.0.0" /> 
    <add key="webpages:Enabled" value="false" /> 
    <add key="ClientValidationEnabled" value="true" /> 
    <add key="UnobtrusiveJavaScriptEnabled" value="true" />  
    <add key="StorageConnectionString" value="UseDevelopmentStorage=true" /> 
</appSettings> 

설정이 facebookAppSecret.config에서 파일뿐만 아니라 <appSettings></appSettings> 항목 뽑아됩니다.

그것은 그 파일의 내용 만 <appSettings></appSettings> 블록을 포함해야 것 또한 주목할만한 가치가 (이 하지 포함해야 즉 <?xml version="1.0" encoding="utf-8" ?><configuration>...</configuration>

당신은 "콘텐츠"해야합니다 (빌드 작업을 조정해야합니다) 및 복사 출력 디렉터리에 복사 빌드 할 때 파일이 출력 디렉터리에 포함되도록 파일의 Visual Studio에서 속성을 마우스 오른쪽 단추로 클릭하십시오.

+0

나에게 알려주세요. 내가 대답으로 표시 할게요 - 고마워요. –

+0

완벽하게 작동합니다. 추가 할 수있는 유일한 것은 외부 파일을 "항상 복사"또는 "더 새로운 경우 복사"로 표시해야한다는 것입니다. 처음 시도했을 때 그 일이 나를 망쳤습니다. –

+0

좋은 지적 - 적어도 F5 디버그가 올바르게 실행되어야합니다. 나는 그 주위에 더 자세하게 업데이트 할 것이다. –

관련 문제