我正在构建一个C#MVC代码优先的网站,并已使用FTP将其部署到主机(aspnix.com)。初始启动页面加载,但如果我尝试加载任何需要访问数据库的页面,我只会收到一个错误:“错误。处理请求时发生错误。”代码优先连接字符串问题
我在本地构建数据库的同时播种数据库,并将mdf文件复制到服务器上的App_Data文件中。如果可以避免的话,我宁愿不必再种子,因为种子数据涉及几个ajax调用几个API以及其他一些网页抓取。
下面是我在本地使用ConnectionString:
<add name="(contextClass)Context" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=|DataDirectory|\(projectName).Context.(contextClass).mdf;Integrated Security=SSPI;Database=(projectName).Context.(contextClass);AttachDBFilename=|DataDirectory|\(projectName).Context.(contextClass).mdf" providerName="System.Data.SqlClient" />
我试图以多种方式来改变这一点,包括使用建议从http://www.connectionstrings.com/sql-server/以及这里SO,但我刚刚得到的错误信息。我不认为它很重要,但我使用SQL Server来访问数据库,而不是Express。任何建议?
编辑:
我会后一对夫妇,我的情况下,已经尝试部署的ConnectionStrings帮助的:
<add name="(contextClass)Context" connectionString="Data Source=.\SQLExpress;Initial Catalog=|DataDirectory|\(projectName).Context.(contextClass)Context.mdf;Integrated Security=SSPI;Database=(projectName).Context.(contextClass)Context;AttachDBFilename=|DataDirectory|\(projectName).Context.(contextClass)Context.mdf" providerName="System.Data.SqlClient" />
又如没有工作:
<add name="(contextClass)Context" connectionString="Data Source=.\SQLExpress;Database=(projectName).Context.(contextClass)Context;AttachDBFilename=|DataDirectory|\(projectName).Context.(contextClass)Context.mdf;Trusted_Connection=Yes" providerName="System.Data.SqlClient" />
编辑: 我注意到服务器上的web.config文件上正在生成以下附加连接字符串。
<add name="(projectName).Context.(contextClass)Context" connectionString="(projectName).Context.(contextClass)Context_ConnectionString"
providerName="System.Data.SqlClient"/>
这可能会导致任何问题?
更新: 名称太长(例如(projectName).Context。(contextClass)Context),所以我将它们改为just(contextClass)Context,重建结束重新发布,这似乎很奇怪。我注意到,本地它仍然运行完美,我仍然可以使用SQL Server访问localDB。
在服务器上,我仍然收到错误,但发生了变化。我现在得到:
Exception: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)
我不知道这是好还是坏?
您使用了不正确的连接字符串。请确保您使用您的托管服务提供商为您提供的连接字符串。我会建议您联系他们的支持人员,并询问您需要使用的正确连接字符串。 –