C# 正在设置Azure portal以使用connectionString作为应用程序设置,而不使用代码
我对Azure和Web开发相对较新,我正试图找到一种从Web应用服务的Configuraton blade使用connectionString的方法。我的理解是,我应该能够使用门户的连接字符串而不是我在Web.Config中指定的伪值来覆盖connectionString。我希望在不更改源代码的情况下执行此操作 我已经在门户中添加了连接字符串,如下所示:C# 正在设置Azure portal以使用connectionString作为应用程序设置,而不使用代码,c#,azure,connection-string,C#,Azure,Connection String,我对Azure和Web开发相对较新,我正试图找到一种从Web应用服务的Configuraton blade使用connectionString的方法。我的理解是,我应该能够使用门户的连接字符串而不是我在Web.Config中指定的伪值来覆盖connectionString。我希望在不更改源代码的情况下执行此操作 我已经在门户中添加了连接字符串,如下所示: <configuration> <configSections> <section name="en
<configuration>
<configSections>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=xxxxxxxxxxxx" requirePermission="false" />
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="configBuilders" type="System.Configuration.ConfigurationBuildersSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=xxxxxxxxxxxx" restartOnExternalChanges="false" requirePermission="false" />
</configSections>
<configBuilders>
<builders>
<add name="AzureKeyVault" vaultName="xxxxxxxxxxxx" type="Microsoft.Configuration.ConfigurationBuilders.AzureKeyVaultConfigBuilder, Microsoft.Configuration.ConfigurationBuilders.Azure, Version=1.0.0.0, Culture=neutral" vaultUri="https://xxxxxxxxxxxx.vault.azure.net/" />
</builders>
</configBuilders>
<!--<connectionStrings>
<add name="SchoolContext" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=ContosoUniversity2;Integrated Security=SSPI;" providerName="System.Data.SqlClient" />
</connectionStrings>-->
<!--Azure connection string-->
<connectionStrings>
<add name="SchoolContext" connectionString="thisdoesntmatter" providerName="System.Data.SqlClient" />
<!-- <add name="ContosoUniversityLogin" connectionString="metadata=res://*/LoginData.csdl|res://*/LoginData.ssdl|res://*/LoginData.msl;provider=System.Data.SqlClient;provider connection string="data source=XXX.database.windows.net;initial catalog=ContosoUniversity;persist security info=True;user id=XXX;password=XXX;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
-->
</connectionStrings>
<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 key="connectionString" value="dummy" />
</appSettings>
我希望这足以覆盖源代码中提供的connectionString
我的Web.Config文件如下所示:
<configuration>
<configSections>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=xxxxxxxxxxxx" requirePermission="false" />
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="configBuilders" type="System.Configuration.ConfigurationBuildersSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=xxxxxxxxxxxx" restartOnExternalChanges="false" requirePermission="false" />
</configSections>
<configBuilders>
<builders>
<add name="AzureKeyVault" vaultName="xxxxxxxxxxxx" type="Microsoft.Configuration.ConfigurationBuilders.AzureKeyVaultConfigBuilder, Microsoft.Configuration.ConfigurationBuilders.Azure, Version=1.0.0.0, Culture=neutral" vaultUri="https://xxxxxxxxxxxx.vault.azure.net/" />
</builders>
</configBuilders>
<!--<connectionStrings>
<add name="SchoolContext" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=ContosoUniversity2;Integrated Security=SSPI;" providerName="System.Data.SqlClient" />
</connectionStrings>-->
<!--Azure connection string-->
<connectionStrings>
<add name="SchoolContext" connectionString="thisdoesntmatter" providerName="System.Data.SqlClient" />
<!-- <add name="ContosoUniversityLogin" connectionString="metadata=res://*/LoginData.csdl|res://*/LoginData.ssdl|res://*/LoginData.msl;provider=System.Data.SqlClient;provider connection string="data source=XXX.database.windows.net;initial catalog=ContosoUniversity;persist security info=True;user id=XXX;password=XXX;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
-->
</connectionStrings>
<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 key="connectionString" value="dummy" />
</appSettings>
门户中存储的连接字符串如下:(为了安全起见,删除了ID和密码):
Server=tcp:XXX.database.windows.net,1433;初始目录=康托索大学;持久安全信息=False;用户ID=XXX;密码=XXX;MultipleActiveResultSets=False;加密=真;TrustServerCertificate=False;连接超时=30 您在门户中创建的连接字符串名为
connectionString
,这是您想要的吗?我在您的配置中没有看到任何名为that的连接字符串。我看到一个名为connectionString
的appsetting,但appsettings与连接字符串是分开的。修复了!这篇文章很有帮助:名字是SchoolContext而不是connectionString。我以为连接字符串的名称是appSettings下Web.Config中的connectionString,但实际上是SchoolContextPlease添加此作为答案,因为它将帮助其他具有相同问题的人。