gpt4 book ai didi

entity-framework - 如何设置数据库连接字符串以从 Visual Studio Online 进行持续部署

转载 作者:行者123 更新时间:2023-12-01 02:12:19 25 4
gpt4 key购买 nike

我有一个 MVC 网站,我可以毫无问题地从 Visual Studio 发布到 azure。在发布向导中,我为与网站关联的两个数据库指定了连接字符串。

我正在尝试为此站点设置持续部署。当我 checkin 更改时,会启动并成功完成云构建。我也知道更改已部署。也就是说,他们没有使用数据库的连接信息进行部署,我不确定如何设置它。

我认为数据库连接是问题所在,因为当我在部署后导航到该站点时,出现此错误:

System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) +5341687
System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) +546
System.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, Boolean withFailover) +5353471
System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, Boolean withFailover) +145
System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString connectionOptions, SqlCredential credential, TimeoutTimer timeout) +923
System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(TimeoutTimer timeout, SqlConnectionString connectionOptions, SqlCredential credential, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance) +311

因为连接信息通常在发布向导中提供,所以我有一种直觉,即解决方案就在那里。我尝试将我的发布配置文件设置文件检查到 VSO,然后将构建定义中的“部署设置路径”设置为该配置文件设置文件:
Path to Deployment settings  $/<projectpath>/mysite.azurewebsites.net.PublishSettings

此外,我将数据库的连接字符串添加到发布设置文件中:
  <add name="CollateralContext" connectionString="<connection string from azure>" />
<add name="UsersContext" connectionString="<connection string from azure>" />

但是当我部署站点时,我得到了相同的错误堆栈跟踪。

我将重申,当我使用“发布”命令从 Visual Studio 直接发布到 azure 时,该站点按预期工作。所以我很确定连接字符串是正确的。我不确定我是否为发布配置文件中的数据库提供了正确的名称,或者部署设置路径是否实际上将发布配置文件作为输入,或者该输入是否在此处正确格式化,等等。

如何正确配置部署以将站点与应用程序中数据库上下文的正确数据库相关联?

谢谢!

最佳答案

经过大量挖掘,我想我找到了解决方案。

可以使用此处发布的说明在 Azure 中配置站点的连接字符串:

http://azure.microsoft.com/en-us/documentation/articles/web-sites-configure/

基本上你:

  • 到网站,选择您的网站
  • 选择配置
  • 在连接字符串部分输入所需的连接字符串

  • 这有点令人困惑,因为我将连接字符串命名为 ClassNameContext 而不是 ClassName(这些是 Entity Framework 代码的第一类)。当我使用 ClassName 作为连接字符串名称时,它起作用。如果有人知道我如何在此处查找所需的连接字符串名称,这将有助于将来了解。

    关于entity-framework - 如何设置数据库连接字符串以从 Visual Studio Online 进行持续部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28210564/

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