【发布时间】:2016-03-07 15:04:24
【问题描述】:
我有一个正常运行的 web api 项目,使用以下连接字符串在 azure 中运行:
<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\aspnet-CatalogAPI-20160227031830.mdf;Initial Catalog=aspnet-CatalogAPI-20160227031830;Integrated Security=True" providerName="System.Data.SqlClient" />
<add name="ProdStoreEntities" connectionString="metadata=res://*/DbCache.csdl|res://*/DbCache.ssdl|res://*/DbCache.msl;provider=System.Data.SqlClient;provider connection string="data source=.\SQLEXPRESS;initial catalog=ProdStore;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
当我发布这个项目时,我在设置选项卡中使用了我的 Azure 数据库的连接字符串,如下所示。
Server=tcp:{name}.database.windows.net,1433;Database=ProductDatabase;User ID={user};Password={your_password_here};Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;
这一切都很好。
然后,我通过在 Visual Studio 中右键单击我的 Web api 项目并选择“添加”->“新建 Azure Web 作业项目”来创建一个 Web 作业。
在我的 web 作业项目中,我对我的 web api 项目进行了解决方案引用,并编写了一些使用我的 web api 项目中的存储库的代码。
我将完全相同的连接字符串从我的 web api 项目添加到我的 web 作业项目中,并且在本地一切正常。但是,当我将整个内容发布到 Azure 时,我收到了这个错误。
未处理的异常:System.Data.SqlClient.SqlException:建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供者:SQL 网络接口,错误:26 - 错误定位服务器/指定的实例)
我的问题是,我的 Azure Web Job 项目中需要什么类型的连接字符串?我假设它需要在某处引用 Azure 数据库,但是当我尝试时,我得到了这个错误。
System.Data.Entity.Infrastructure.UnintentionalCodeFirstException:上下文正在 Code First 模式下使用,代码是从 EDMX 文件生成的,用于 Database First 或 Model First 开发。这将无法正常工作。要解决此问题,请不要删除引发此异常的代码行。如果您希望使用 Database First 或 Model First,请确保 Entity Framework 连接字符串包含在启动项目的 app.config 或 web.config 中。如果要创建自己的 DbConnection,请确保它是 EntityConnection 而不是其他类型的 DbConnection,并且将其传递给采用 DbConnection 的基本 DbContext 构造函数之一。要了解有关 Code First、Database First 和 Model First 的更多信息,请参阅此处的实体框架文档:http://go.microsoft.com/fwlink/?LinkId=394715
【问题讨论】:
-
您找到解决方案了吗?我也面临同样的问题。
标签: c# entity-framework azure connection-string azure-webjobs