【问题标题】:MVC 5 SQL Network Interfaces, error: 26 - Error, with [Authorize]MVC 5 SQL 网络接口,错误:26 - 错误,带有 [授权]
【发布时间】:2015-07-04 08:55:59
【问题描述】:

我在 MVC 5 中设置授权时遇到问题。我有一个带有个人用户帐户的全新 MVC 5 网站和一个带有五个 aspNet... 表的 SQL Server 数据库。

我可以在本地登录,在我的本地服务器上一切正常,当我将本地连接字符串指向生产服务器时,我什至可以从本地网站登录生产数据库,但我无法从网站上的网站登录生产服务器,

我收到以下错误:

在建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供者:SQL 网络接口,错误:26 - 错误定位服务器/指定的实例)

仅当我在必须登录的操作上使用 [Authorize] 时才会发生错误,如果我删除 [Authorize] 操作和数据库工作正常。

任何想法

编辑

为了清楚起见,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 中设置了许多使用相同配置的网站,它们运行良好。

【问题讨论】:

  • 检查您的连接字符串是否正确。我不认为它是。 Authorize 注释导致应用程序尝试连接到 ASP 身份表以验证用户身份。它无法访问数据库。
  • 如果我在本地使用相同的连接字符串连接到在线数据库并且我可以登录,它也适用于其他表,如果我删除授权其余表工作正常。跨度>

标签: asp.net-mvc-5 authorization


【解决方案1】:

我也有类似的问题;但是,我错误地认为我没有使用 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>

【讨论】:

  • 这是为我做的!
【解决方案2】:

我解决了这个问题,但它让我提出了一个新问题,我需要解决这个问题。对于这个问题,我在这里引用了错误的基本连接。

public ApplicationDbContext()
    : base("DefaultConnection", throwIfV1Schema: false)
{
}

现在的问题是我需要两个连接字符串来连接。一个用于授权,因为 MVC5 需要 Code First 连接字符串,但我的其余代码是 Database First

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-11
    • 1970-01-01
    • 2016-02-26
    • 1970-01-01
    • 2012-11-25
    • 1970-01-01
    相关资源
    最近更新 更多