web.config (또는 app.config)에서 구성 설정을 보유 할 때 Windows Azure를 사용하여 응용 프로그램 구성을 변경할 수있는 방법을 알 수 없습니다. 예를 들어Azure 역할 구성 관리
...
는 종종 프로젝트의 web.config를 많이 사용하게 제 3 자 라이브러리를 사용하게됩니다. web.config를 사용하려면 연결 문자열, 응용 프로그램 설정 또는 사용자 정의 구성 섹션이 필요할 수 있습니다. 좋은 예가 ELMAH입니다.저를 업데이트하거나 원격 액세스를 사용할 수 있는지 여부를 다를 수있는 방법은 없습니다 : 여기에 몇 가지 문제가
<configuration> <configSections> <sectionGroup name="elmah"> <section name="security" requirePermission="false" type="Elmah.SecuritySectionHandler, Elmah" /> <section name="errorLog" requirePermission="false" type="Elmah.ErrorLogSectionHandler, Elmah" /> </sectionGroup> </configSections> <connectionStrings> <add name="MyElmahDatabase" providerName="System.Data.SqlClient" connectionString="Server=tcp:myServer.database.windows.net,1433;Database=myDB;User [email protected];Password=password;Trusted_Connection=False;Encrypt=True;Connection Timeout=30" /> </connectionStrings> <elmah> <security allowRemoteAccess="1" /> <errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="MyElmahDatabase" /> </elmah> </configuration>
있습니다 ELMAH에 대한 web.config 파일은 다음과 같이 보일 수 있습니다 서비스 구성 간.
서비스 구성간에 ELMAH 연결 문자열을 업데이트하거나 변경할 방법이 없습니다. Web.config의이 .cspkg 파일로하고 ELMAH는 (I 서비스 구성과 구성 설정을 변경할 수있는 유일한 방법입니다) 서비스 구성 설정에 보이지 않는 것 같이 포장되어 있기 때문에
이다.
이 문제이고 나는 많은 다른 예를 생각할 수...
- 연결 문자열 섹션을 직접 들여다 모든 데이터 액세스 프레임 워크.
- 만들 필요가있는 모든 사용자 지정 구성 설정.
... 단지 2 개의 이름을 지정하십시오.
Windows Azure에서 제공하는 구성 관리에서 뭔가가 누락되었거나 상당한 차이가 있습니까? 이 잘 지원되지 않는 무언가처럼
대답 아래 댓글에서
편집, 그것은 보인다. 다양한 구성 프로파일을 지원하기 위해 여러 솔루션 빌드 구성을 관리하는 것은 매우 약한 해결책이라고 생각합니다. 필자가 필요로하는 각 구성 프로파일에 대해 솔루션을 다시 빌드하지 않아도됩니다. 편집이 구성과 동일하지 않습니다.
zip 파일이므로 .cspkg 파일을 수정하는 방법이 있는지 궁금합니다. this 설명서에 따르면 Linux에서 할 수 있습니다.
나는 .cspkg 파일에 매니페스트에서 검토 한 결과는 다음과 같습니다 : 나는 경우
<PackageManifest version="2">
<Encryption keytype="1" />
<Contents hashtype="1">
<Item name="MyApp.Web.UI_<GUID>.cssx" hash="AED69299C5F89E060876BC16BD3D6DE5130F6E62FFD2B752BAF293435339B7E2" uri="/MyApp.Web.UI_<GUID>.cssx" />
<Item name="MyApp.Web.Services_<GUID>.cssx" hash="7AC81AFF642E4345173C8470C32A41118A4E3CFD4185B82D0ADA44B71057192D" uri="/MyApp.Web.Services_<GUID>.cssx" />
<Item name="SMPackage_<GUID>.csmx" hash="B5E6B83B62AF64C7C11CAC1A394ABBF15D7DB7667A773C5284CE5BE95C5834E9" uri="/SMPackage_<GUID>.csmx" />
<Item name="SDPackage_<GUID>.csdx" hash="F34B7C02A551D82BAD96881E2DA9447D0014D49B47CCB3840475BDC575234A7D" uri="/SDPackage_<GUID>.csdx" />
<Item name="NamedStreamPackage_<GUID>.csnsx" hash="FA2B5829FF5D9B2D69DCDDB0E5BDEE6B8B0BC09FFBF37DAEEE41CF3F3F4D0132" uri="/NamedStreamPackage_<GUID>.csnsx" />
</Contents>
<NamedStreams>
<Stream name="RequiredFeatures/MyApp.Web.Services/1.0" />
<Stream name="RequiredFeatures/MyApp.Web.UI/1.0" />
<Stream name="SupportData/MyApp.Web.Services/1.0" />
<Stream name="SupportData/MyApp.Web.UI/1.0" />
</NamedStreams>
</PackageManifest>
불행하게도, 변경되지 않은 "MyApp.Web.UI_.cssx"의 해시를 다시 계산 내 해시가 매니페스트 파일과 다릅니다.매니페스트에서
해시 : AED69299C5F89E060876BC16BD3D6DE5130F6E62FFD2B752BAF293435339B7E2
내 계산 된 해시 : 해시가 동일해야하므로 아직 파일을 변경하지 않은 E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855
참고.
이것은 잘못 계산 한 것 같습니다.
class Program
{
static void Main(string[] args)
{
using (FileStream fs = new FileStream(args[0], FileMode.Open))
{
ComputeHash(new SHA256Managed(), fs);
}
}
private static void ComputeHash(HashAlgorithm hashAlgorithm, Stream stream)
{
byte[] hash = hashAlgorithm.ComputeHash(stream);
string hashString = BitConverter.ToString(hash);
Console.WriteLine(hashString.Replace("-", string.Empty));
Console.WriteLine();
}
}
위의 문서 링크가 (어쨌든 리눅스에) 다시 계산 해시에 간단 제안 다음과 같이 내 방법이었다.
누구나 해시를 다시 계산하는 방법을 알고 있습니까?
와 다이제스트를 얻을 수 있습니다. –
그건 작동하지 않습니다 - ELMAH (및 다른 프레임 워크)는 .cscfg에 저장된 구성 데이터를 보지 않습니다. –
필자가 아는 한, 하늘색 패키지의 구성 가능한 방법은 .cscfg 파일뿐입니다. ELMAH와 같은 프레임 워크의 경우 구성을 동적으로 변경하는 것과 같은 해결 방법을 찾아야 할 수도 있습니다. 하지만 나는 더 나은 답변을 제공 할 수있는 Stackoverflow에 하늘빛 전문가가 많이 있다고 생각합니다. 또한 이것은 매우 흥미롭고 중요한 질문입니다. –