문제

대 ASP.Net 응용 프로그램의 배포는 정보 유형을(있을 경우)저장하고 있습니다.config?

을 사용하지 않는 경우에 그것은,당신은 어떻게 관리하는 환경이 특정 구성 설정을 변경할 수 있는 각각의 환경에 대한?

내가 찾는 일부"최상의 방법"및 혜택/함정의 각.우리가에 대해 배포하는 새로운 응용 프로그램 생산에서 두 개월 동안 나는 몇몇 위도에서 이러한 형태의 결정이다.내가 있는지 확인하려면 나는 접근하는 것을 가능한 최선의 방법으로하고를 방지하 촬영에 자신을 발습니다.

참고로 우리가 그것을 사용하여(기계입니다.config)현재 대만 DB 연결 정보를 저장하는 모든 다른 변수에서 변경할 수 있는 config 테이블에서 데이터베이스입니다.

도움이 되었습니까?

해결책

우리가 사용을 고려하는 기계입니다.config 를 추가하는 하나의 키 환경에 대한,그리고 다음 중 하나에서 섹션 web.config 는 궤도에 유지하면서 더 먹 같은 모든 환경입니다.이 방법은 우리가 할 수 있는"진짜"XCopy 배포합니다.

E.g.에서는 기계입니다.config 에 대한 모든 컴퓨터(로컬 개발 워크스테이션 단계 서버,서버 구축,생산 서버),우리는 다음을 추가합니다:

<appSettings>
    <add key="Environment" value="Staging"/>
</appSettings>

그런 다음,어떠한 구성 요소는 환경-특정을 가져옵 환경에 추가처럼,그래서:

<connectionStrings>
    <add name="Customers.Staging" provider="..." connectionString="..."/>
</connectionStrings>
<appSettings>
    <add key="NTDomain.Staging" value="test.mydomain.com"/>
</appSettings>

하나의 문제는 우리가 없을 위한 솔루션이 사용하는 방법을 말 추적 web.config 디버깅을 위해 환경에 대한 라이브 환경이 있습니다.

또 다른 문제는 라이브 연결 문자열 포함합니다.사용자 이름과 비밀번호에 지금의 원본을 제어 시스템입니다.그러나 이것은 문제입니다.

다른 팁

는 경우에 당신은 서버의 부하를 분산시키십시오,당신은 절대적으로 확인해야 컴퓨터 키에서 동일한 모든 서버에 있습니다.Viewstate 될 예정이 서버에 상관없지만,그렇지 않은,그래서 당신을 얻을 것 viewstate 오류를 손상하는 경우 컴퓨터 키지에서 동일 서버입니다.

<machineKey validationKey='A130E240DF1C49E2764EF8A86CEDCBB11274E5298A130CA08B90EED016C0
14CEAE1D86344C29E67E99DF83347E43820050A2B9C9FC89E0574BF3394B6D0401A9'
decryptionKey='2CC37FFA8D14925B9CBCC0E3B1506F35066FEF33FEB4ADC8' validation='SHA1'/>

From: http://www.c-sharpcorner.com/UploadFile/gopenath/Page107182007032219AM/Page1.aspx

PS 확인할 수 있습 enableViewStateMAC="false",그러나 하지 않습니다.

우리가 사용하는 기계입니다.config 에 우리의 생산 서버를 설정/삭제는 특정 구성하는 중요 생산 그리고 우리가 잊고 싶지 않을 설정합니다.

이는 2 개의 가장 중요하다:

<system.web>
    <deployment retail="true" />
    <healthMonitoring enabled="true" />
</system.web> 

내가 사용하는 기계입니다.config 위해 단지 ASP.NET 지만,전반적인 구성 뿐만 아니라.를 구현했는 해시 알고리즘(Tiger)C#고 싶어 그것을 통해 사용 가능한 기계를 요청합니다.그래서,등록 내 GAC 에 어셈블리에 추가하려면 다음을 기계입니다.config:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <mscorlib>
        <cryptographySettings>
            <cryptoNameMapping>
                <cryptoClasses>
                    <cryptoClass Tiger192="Jcs.Tiger.Tiger192, Jcs.Tiger, Culture=neutral, PublicKeyToken=66c61a8173417e64, Version=1.0.0.4"/>
                    <cryptoClass Tiger160="Jcs.Tiger.Tiger160, Jcs.Tiger, Culture=neutral, PublicKeyToken=66c61a8173417e64, Version=1.0.0.4"/>
                    <cryptoClass Tiger128="Jcs.Tiger.Tiger128, Jcs.Tiger, Culture=neutral, PublicKeyToken=66c61a8173417e64, Version=1.0.0.4"/>
                </cryptoClasses>
                <nameEntry name="Tiger" class="Tiger192"/>
                <nameEntry name="TigerFull" class="Tiger192"/>
                <nameEntry name="Tiger192" class="Tiger192"/>
                <nameEntry name="Tiger160" class="Tiger160"/>
                <nameEntry name="Tiger128" class="Tiger128"/>
                <nameEntry name="System.Security.Cryptography.HashAlgorithm" class="Tiger192"/>
            </cryptoNameMapping>
            <oidMap>
                <oidEntry OID="1.3.6.1.4.1.11591.12.2" name="Jcs.Tiger.Tiger192"/>
            </oidMap>
        </cryptographySettings>
    </mscorlib>
</configuration>

이것은 나의 코드를 찾아서:

using (var h1 = HashAlgorithm.Create("Tiger192"))
{
   ...
}

가에 의존하지 않은 Jcs.Tiger.dll 어셈블리에서 나의 코드가 모든 하드 또는 소프트입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top