我有一个我正在研究的网站项目,我有一段时间试图弄清楚如何让我的数据库在发布到GoDaddy后工作,但它在本地工作。我之前没有建立过一个项目,所以这对我来说是新的。我发现我的第一个问题是我使用的是LocalDB,而且这只是本地的(尽管有些人声称你可以装备它,但是没有人能为我工作)。
首先,我在本地使用Adventure Works 2012数据库,并在发布时将其与项目一起上传。也许这是我的第一个问题?
来自web.config
:
<add name="AdventureWorks2012_DataEntities"
connectionString="metadata=res://*/Models.Entities.csdl|res://*/Models.Entities.ssdl|res://*/Models.Entities.msl;provider=System.Data.SqlClient;provider connection string="data source=.\SQLEXPRESS;attachdbfilename=|DataDirectory|\AdventureWorks2012_Data.mdf;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework;User Instance=True""
providerName="System.Data.EntityClient" />
GoDaddy asp.net设置中的连接字符串:
AdventureWorks2012_DataEntities
metadata=res://*/Models.Entities.csdl|res://*/Models.Entities.ssdl|res://*/Models.Entities.msl;provider=System.Data.SqlClient;provider connection string="data source=.\SQLEXPRESS;attachdbfilename=|DataDirectory|\AdventureWorks2012_Data.mdf;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework;User Instance=True"
我目前收到错误:
找不到服务器或无法访问服务器。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (提供程序:SQL网络接口,错误:26 - 查找指定的服务器/实例时出错)
我不知道该连接字符串在发布时是否可以正常工作(因为需要具有用户名/密码的实际网络位置)?您可以在GoDaddy上配置数据库,也许我必须这样做 - 假设我可以通过这种方式将数据导入该数据库。我能看到的唯一方法是将表数据转储到sql脚本并从MyLittleAdmin工具运行它们。但即使我在那里得到数据,我仍然不确定如何配置它。此外,MyLittleAdmin工具似乎极其有限。我的本地文件中的数据库也是SQL Server 2016 Express版本格式,虽然我可以更改 - 我不知道这是否是GoDaddy问题的一部分。
我真的很想自己解决这个问题,但我已经开了好几天了。我不知道我是不是只是遗漏了一些东西,或者我是不是错了。或者如果有更多内容,我需要找到除GoDaddy之外的其他托管服务提供商,因为我已经阅读了一些关于他们如何在这方面与SQL Server数据库相关的提及。
我真的很感激有人可以为此发光。
答案 0 :(得分:1)
问题很可能是您的连接字符串指向寻找SQL Express实例的本地计算机(Web服务器)。从较大的连接字符串中提取:
data source = 。\ SQLEXPRESS ; attachdbfilename = | DataDirectory | \ AdventureWorks2012_Data.mdf; integrated security = True; ...; User Instance = True“
如果您有GoDaddy提供的SQL服务器,则需要在那里发布SQL数据库,然后在发布网站时将连接字符串转换为指向该服务器的位置。