【问题标题】:LocalDB using in Azure App service在 Azure App 服务中使用 LocalDB
【发布时间】:2017-06-30 07:33:05
【问题描述】:

我在 Web 配置中有以下连接字符串,并且在 Visual Studio 中工作正常。

<connectionStrings>
   <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\aspnet-MyPortal-20170627104450.mdf;Initial Catalog=aspnet-MyPortal-20170627104450;Integrated Security=True" providerName="System.Data.SqlClient" />
</connectionStrings>

我尝试使用 Azure 应用服务和 Azure AD 将我的 ASP.NET MVC 应用程序移植到 Azure。我将 AttachDbFilename 属性更改如下

AttachDbFilename=\App_Data\aspnet-MyPortal-20170620051631.mdf

我遇到以下错误:

键“attachdbfilename”的值无效。
说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:System.ArgumentException:键“attachdbfilename”的值无效。
源错误:
在执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常起源和位置的信息。

App Data 文件夹确实包含 mdf 文件。如何在 web config 的连接字符串中引用它?

是否有任何用于通过 Azure AD 验证 Azure Web 应用程序的示例程序?

【问题讨论】:

  • 你用 `App_Data` 代替 |DataDirectory| 有什么特别的原因吗?

标签: c# asp.net azure active-directory


【解决方案1】:

简而言之,您不能在 Azure 应用服务中使用 LocalDB。

还有另一个答案——How to connect a localdb from Visual Studio to the published Azure web app?

【讨论】:

  • 让我再次澄清问题。我们创建的 .NET MVC Web 应用在从 Visual Studio 运行时运行良好。它能够连接到 Azure SQL DB 和 Azure AD。当我通过创建 Azure 应用服务部署此应用时,我在 Azure AD 身份验证步骤中遇到了前面提到的错误。当我绕过 AD 身份验证步骤时,应用程序可以正常连接到 Azure SQL DB。我的猜测是 Azure Web 应用程序无法识别 wwwroot 下的 App_Data 文件夹,因此在连接字符串中尝试了不同的方式但没有取得多大成功。有人可以帮忙吗?
【解决方案2】:

现在工作正常。对 Webconfig 中的连接字符串进行了如下更改。删除了连接字符串中的 AttachDBFilename 属性并包含了 Azure DB。

&lt;add name="DefaultConnection" connectionString="Server = tcp:myserverazure2017.database.windows.net,1433; Initial Catalog = MyDBPro; Persist Security Info = False; User ID = ****; Password = ****; MultipleActiveResultSets = False; Encrypt = True; TrustServerCertificate = False; Connection Timeout = 30;" providerName="System.Data.SqlClient" /&gt;

【讨论】:

    猜你喜欢
    • 2014-12-23
    • 2020-05-27
    • 2019-10-30
    • 2021-11-27
    • 2020-01-16
    • 2016-11-07
    • 2013-09-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多