我使用ASP.NET内置方法进行用户身份验证和成员身份,该方法使用存储在项目解决方案的App_Data文件夹中的SQL Server平面文件(.mdf)。
我在本地工作,但当我部署到虚拟专用服务器(VPS)时,我收到以下错误消息:
建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (提供程序:SQL网络接口,错误:26 - 查找指定的服务器/实例时出错)
这是我的连接字符串:
<add name="DefaultConnection" connectionString="Data Source=IP_ADDRESS;AttachDbFilename=|DataDirectory|\ASPNETDB.MDF;Integrated Security=True;Connect Timeout=30 User ID=USERNAME;Password=PASSWORD" providerName="System.Data.SqlClient"/>
答案 0 :(得分:0)
我没有为SQL Server使用本地.mdf文件,但请尝试以下操作:
<add name="DefaultConnection" connectionString="AttachDbFilename=|DataDirectory|\ASPNETDB.MDF;Connect Timeout=30;User ID=USERNAME;Password=PASSWORD" providerName="System.Data.SqlClient"/>
在本地尝试,看看它是否有效。如果它在本地工作,然后在您的VPS上尝试。我猜测对于本地文件,“集成安全性”并不重要。此外,您在;
之前错过了User ID
,我不确定为什么IP地址对本地文件很重要。
答案 1 :(得分:0)
修正了分号并仍显示相同的错误消息,但现在也是:
SQLExpress数据库文件自动创建错误:
连接字符串指定本地Sql Server Express实例 使用应用程序的App_Data目录中的数据库位置。 提供程序尝试自动创建应用程序 服务数据库因为提供者确定了数据库 不存在。以下配置要求是必需的 成功检查是否存在应用程序服务 数据库并自动创建应用服务数据库:
如果应用程序在Windows 7或Windows Server上运行 2008R2,需要特殊配置步骤才能启用自动 创建提供者数据库。其他信息可用 at:http://go.microsoft.com/fwlink/?LinkId=160102。如果 应用程序的App_Data目录尚不存在,即Web 服务器帐户必须具有对应用程序的读写访问权限 目录。这是必要的,因为Web服务器帐户将 如果还没有,则自动创建App_Data目录 存在。如果应用程序的App_Data目录已存在,则为Web 服务器帐户只需要读取和写入权限 应用程序的App_Data目录。这是必要的,因为网络 服务器帐户将尝试验证Sql Server Express 数据库已存在于应用程序的App_Data目录中。 从Web服务器撤消对App_Data目录的读访问权限 帐户将阻止提供商正确确定是否 Sql Server Express数据库已经存在。这将导致错误 当提供程序尝试创建已经的副本时 现有数据库。由于Web服务器,因此需要写访问权限 创建新数据库时使用帐户的凭据。 SQL 必须在计算机上安装Server Express。流程标识 对于Web服务器帐户,必须具有本地用户配置文件。见 自述文档,了解有关如何为其创建本地用户配置文件的详细信息 机器和域帐户。