我在MVC 5中设置授权时遇到问题。我有一个全新的MVC 5网站,其中包含个人用户帐户和一个带有五个aspNet ...表的SQL Server数据库。
我可以在本地登录,它在我的本地服务器上工作正常,当我在生产服务器上指向本地连接字符串时,我甚至可以从本地网站登录生产数据库,但我无法从网站登录在生产服务器上,
我收到以下错误:
建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (提供程序:SQL网络接口,错误:26 - 查找指定的服务器/实例时出错)
只有在我必须登录的Action上使用[Authorize]时才会出现错误,如果我删除[Authorize] Action并且数据库工作正常。
任何想法
修改
为了清楚起见,SQL Server位于Arvixe服务器之一,而Godaddy的网站是我的连接字符串
<add name="mysiteEntities"
connectionString="metadata =
res://*/Models.mysite.csdl|res://*/Models.mysite.ssdl|res://*/Models.mysite.msl;
provider = System.Data.SqlClient;
provider connection string ='
data source = xxxxx.arvixe.com;
Initial Catalog = mysite;
User ID = xxxxxx;
Password = xxxxxxx'"
providerName="System.Data.EntityClient" />
我无法使用此字符串从Godaddy登录,但如果我在本地计算机上使用此字符串,则可以登录。
我还在MVC 4中设置了许多具有相同配置的网站,这些网站运行良好。
答案 0 :(得分:3)
我有类似的问题;但是,我错误地认为我没有使用EF和SQL Server,而是围绕Oracle 11g使用Telerik Data Access。根据这篇文章(http://blog.luppes.com/2013/12/08/mvc5-authentication-roles-failure/)
,修复它对我来说是删除配置文件中的RoleManager模块所以,为后代解释这个链接,它是:
<system.webServer>
<modules>
<remove name="RoleManager" />
</modules>
</system.webServer>
答案 1 :(得分:0)
我解决了这个问题,但它让我提出一个新的问题,即我挥手致意。对于这个问题,我在这里引用了错误的基本连接。
public ApplicationDbContext()
: base("DefaultConnection", throwIfV1Schema: false)
{
}
现在的问题是我需要两个连接字符串才能连接。一个用于授权,因为MVC5需要一个 Code First 连接字符串,但我的其余代码是数据库优先