我没有看到的Windows Azure是如何让您改变程序的配置时,你有没有选择,只能在web.config中(或app.config)中保存配置设置。
例如...
经常项目将利用第三方库,使大量使用的web.config的。 使用web.config中可能涉及的连接字符串,应用程序设置或自定义配置节。 这方面的一个很好的例子是ELMAH。 对于ELMAH web.config文件看起来像下面这样:
<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 ID=user@myServer;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打包成是进入.cspkg文件ELMAH不会看服务配置设置(这是我可以改变服务配置之间的配置设置的唯一方法)。
我能想到的许多其他例子,其中这是一个问题......
- 任何直接在连接字符串节观看数据访问框架。
- 任何自定义配置设置我需要创建。
...举两个。
我缺少的东西或这是由Windows Azure中提供的配置管理显著的差距呢?
编辑
从答案,下面的评论,它看起来像这样的东西是不能很好的支持。 我认为,管理多个解决方案生成配置,以支持不同的配置模板是一个非常薄弱的解决方案。 我不应该来重建每个配置文件我需要的解决方案(有可能会相当多的)。 汇编不等于配置。
我在想,如果有修改.cspkg文件,因为它仅仅是一个zip文件的方式。 根据该对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();
}
}
上面的文档链接,表明它是简单的重新计算散列(在Linux反正)。
有谁知道如何重新计算哈希值?