"以从 Azure .cscfg 文件工作-6ren"> "以从 Azure .cscfg 文件工作-我们有一个 ASP.NET(不是 MVC)应用程序要迁移到 Azure。在许多页面中我们都有这样的代码: " SelectCommand="usp_list_resources" Select-6ren">
gpt4 book ai didi

c# - 如何更改 ASP.NET ConnectionString ="<%$ ConnectionStrings:MyAppConnection %>"以从 Azure .cscfg 文件工作

转载 作者:行者123 更新时间:2023-11-30 17:57:52 24 4
gpt4 key购买 nike

我们有一个 ASP.NET(不是 MVC)应用程序要迁移到 Azure。在许多页面中我们都有这样的代码:

<asp:SqlDataSource runat="server" ID="ResourcesDataSource" ConnectionString="<%$ ConnectionStrings:MyAppConnection %>"
SelectCommand="usp_list_resources" SelectCommandType="StoredProcedure"></asp:SqlDataSource>

它从 web.config 读取连接字符串。部署到 Azure 时,我希望在 .cscfg 文件中包含连接字符串,这样我们就可以使用相同的 .cspkg 部署到不同的环境,而只需更改 .cscfg。 Azure 中相当于使用 <%$ ConnectionStrings:MyAppConnection %> 的是什么? ?

我可以浏览每个页面并在 Page_Init() 方法中设置数据源的 ConnectionString 属性,但我真的不想...声明式解决方案会更好,理想情况下可以使用查找/替换:)

谢谢!

最佳答案

您想要的东西不是标准 Azure 工具的一部分。

很可能您应该构建自己的 ExpressionBuilder 。4guysfromrolla.com 上有一篇文章 "Using Expression Builders in ASP.NET" 。它展示并解释了表达式构建器的核心概念及其内部结构。

对您的主题进行快速搜索后,我找到了另一篇文章 "ASP.NET Custom Expression Builder For Azure" 。希望这能帮助您解决问题。

如果上面的链接不可用,这里有一个代码:

using System.CodeDom;
using System.Web.Compilation;
using System.Web.UI;
using Microsoft.WindowsAzure.ServiceRuntime;

public class AzureSettingsExpressionBuilder : ExpressionBuilder
{
public override CodeExpression GetCodeExpression(BoundPropertyEntry entry, object parsedData, ExpressionBuilderContext context)
{
return new CodePrimitiveExpression(RoleEnvironment.GetConfigurationSettingValue(entry.Expression));
}
}

web.config中注册表达式生成器:

<compilation>
<expressionBuilders>
<add expressionPrefix="AzureSettings" type="AzureSettingsExpressionBuilder"/>
</expressionBuilders>
</compilation>

更新的 aspx 标记:

<asp:SqlDataSource runat="server" ID="ResourcesDataSource" 
ConnectionString="<%$ AzureSettings:MyConnectionString %>"
SelectCommand="usp_list_resources"
SelectCommandType="StoredProcedure">
</asp:SqlDataSource>

关于c# - 如何更改 ASP.NET ConnectionString ="<%$ ConnectionStrings:MyAppConnection %>"以从 Azure .cscfg 文件工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12863283/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com