我一直在开发一个 C# MVC4 网站,并尝试将其发布到 Host Gator 共享 Windows 托管帐户。它们同时运行 MSSQL 2008 和 mySql。我们在尝试让网站正常运行时遇到了一些麻烦。
首先,我们使用代码优先方法通过 MVC 创建数据库并实现SimpleMembership
它提供的功能。
如果我发布一个由 Visual Studio 2010 模板创建的基本 MVC 网站,只要它不尝试连接到数据库,该网站就会加载并显示页面。
我曾与 Host Gator 技术支持人员合作,但他们无法就如何实际连接数据库给出好的答案。我尝试了各种连接字符串,并尝试实施 SqlServerCe 3.5。
我尝试过的一些连接字符串示例如下:
<configuration>
<connectionStrings>
<add connectionString="Server=myServerAddress;Database=myDataBase;ID=myUsername;Password=myPassword;Trusted_Connection=False" name="connectionName" providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>
和这个:
<connectionStrings>
<add connectionString=Data Source=ServerIPAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword; />
</connectionStrings>
</configuration>
但似乎没有什么效果,我们到处都遇到了错误,例如:
建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。(提供程序:SQL 网络接口,错误:26 - 定位指定的服务器/实例时出错)
一切都指向连接字符串并且无法连接。
有没有人有使用 HostGator 和 MVC 的成功案例?
答案1
我猜他们不提供 RDP 访问权限。如果是这样,我要做的第一件事就是尝试 ping sql 服务器,并尝试使用 odbcad32 创建系统 DSN,并验证数据库是否可以独立于应用程序访问。
如果您的数据库不是 SQL 服务器上唯一或默认实例,则可能需要在连接字符串中指定实例名称:
server=serverName\instanceName
可以进一步制作连接字符串来指定 tcp/ip 和 SQL 端口号:
tcp:servernameorIP\instanceName,1433
另一种可能有助于提供更多信息的技术是在 global.asax.cs 中执行一些其他测试,独立于使用连接字符串的数据库访问,例如 ping sql 服务器,并尝试与 1433 上的 SQL 服务器建立简单的 tcp 连接。