【发布时间】:2014-04-08 11:28:16
【问题描述】:
在 VS2013 中,我创建了一个 Asp.net WebAPI 项目,该项目使用 EntityFramework 将数据保存/检索到 SQL Server 数据库中。 SQL Server 数据库托管在 Azure 中。
我有一个控制器类在我的 Web API 项目中执行此操作,并且一切正常......直到我将我的 WebAPI 项目发布到 Azure 然后我收到一个错误:
InnerException: System.Data.SqlClient.SqlException. Message=Invalid object name 'dbo.MyTableName'.
请务必注意,当我使用 Localhost 运行 WebAPI 项目时,它工作正常。
有谁知道我可以如何调查问题所在?我已附加到调试器并设置了一个断点。我可以看到它在这条线上失败了:
db.MyTableName.Find(id);
当我返回一个硬编码的值时,它可以正常工作,因此使用 EntityFramwork 连接到数据库显然是一个问题。 我的预感是上传到 Azure 后,EntityFramework 的模型对象的引用路径不正确。在 web.config 中: metadata=res://*/Model1.csdl...
我试过 metadata=res://MyAssemblyName/Model1.csdl...
我试过 metadata=res://MyAssemblyName.dll/Model1.csdl...
但仍然有同样的错误。我可以在这里尝试任何其他变体吗?
我还更新到 SQL Server/azure FIREWall 以确保允许正确的 IP 地址,但这也不是问题。
有什么想法吗?
编辑 我也尝试过这些连接字符串,但没有成功
connectionString="metadata=res://AssemblyName/Model1.csdl|res://AssemblyName/Model1.ssdl|res://AssemblyName/Model1.msl;provider=System.Data.SqlClient;provider connection string="Data Source=tcp:xxx.database.windows.net,1433;Initial Catalog=dev_db;User Id=xxx;Password=xxx;" providerName="System.Data.EntityClient"
connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string="Data Source=tcp:xxx.database.windows.net,1433;Initial Catalog=dev_db;User Id=xxx;Password=xxx;" providerName="System.Data.EntityClient"
【问题讨论】:
-
您是否更新了连接字符串以使用 SQL Azure?您是如何将调试器附加到部署在 Azure 中的 webapi 的?
标签: c# .net sql-server entity-framework azure