小编Smi*_*.09的帖子

由于基于角色的[Authorize]属性,ASP.NET MVC 5 Azure网站无法在某些视图上连接到SQL Azure DB

我们有一个ASP.NET MVC 5网站,当我们使用Visual Studio在本地运行它时,它可以正常工作。在本地运行时,网站连接到两个SQL Express数据库(AspNetUsers和我们的内容数据库)。我们使用实体框架连接到内容数据库。

我们将网站部署到Azure,并将2个数据库迁移到SQL-Azure数据库。

这是web.config中的连接字符串

<connectionStrings>    
<add name="AspNetUsersDatabase" connectionString="Data Source=tcp:ZZZ.database.windows.net,
1433;Initial Catalog=ZZZ;User ID=ZZZ@ZZZ;Password=ZZZ;" 
providerName="System.Data.SqlClient" />

<add name="Group5DatabaseConnectionString" connectionString="Data Source=YYY.database.windows.net,
1433;Initial Catalog=YYY;User ID=YYY@YYY;Password=YYY;" 
providerName="System.Data.SqlClient" />

<add name="Group5DatabaseEntities" connectionString="metadata=res://*/Models.Group5Model.csdl|
res://*/Models.Group5Model.ssdl|res://*/Models.Group5Model.msl;provider=System.Data.SqlClient;
provider connection string=&quot;data source=XXX.database.windows.net,1433;
InitialCatalog=XXX;UserID=XXX@XXX;Password=XXX;MultipleActiveResultSets=True;
App=EntityFramework&quot;"providerName="System.Data.EntityClient" />
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)

似乎这些链接正确链接到了网站,因为此答案中所述的web.config中的连接字符串与Azure中的连接字符串正确匹配,并且网站上的大多数视图都可以正常工作。

但是,当尝试打开两个视图时,出现以下错误:

“ /”应用程序中的服务器错误。

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

说明:执行当前Web请求期间发生未处理的异常。
请查看堆栈跟踪,以获取有关错误及其在代码中起源的更多信息。

SQLExpress数据库文件自动创建错误:

连接字符串使用应用程序的App_Data目录中的数据库位置指定本地Sql Server Express实例。

提供者尝试自动创建应用程序服务数据库,因为提供者确定该数据库不存在。要成功检查应用程序服务数据库的存在并自动创建应用程序服务数据库,必须满足以下配置要求:

如果应用程序在Windows 7或Windows Server 2008R2上运行,则必须执行特殊的配置步骤才能启用提供程序数据库的自动创建。有关其他信息,请访问:http : //go.microsoft.com/fwlink/?LinkId=160102。如果应用程序的App_Data目录不存在,则Web服务器帐户必须具有对该应用程序目录的读写权限。这是必需的,因为如果Web服务器帐户尚不存在,它将自动创建App_Data目录。

如果应用程序的App_Data目录已经存在,则Web服务器帐户仅需要对应用程序的App_Data目录的读写权限。这是必需的,因为Web服务器帐户将尝试验证应用程序的App_Data目录中是否已存在Sql Server Express数据库。从Web服务器帐户撤消对App_Data目录的读取访问权限,将阻止提供程序正确确定Sql Server Express数据库是否已存在。当提供程序尝试创建已经存在的数据库的副本时,这将导致错误。由于创建新数据库时会使用Web服务器帐户的凭据,因此需要写访问权限。

必须在计算机上安装Sql Server Express。Web服务器帐户的进程标识必须具有本地用户配置文件。有关如何为计算机帐户和域帐户创建本地用户配置文件的详细信息,请参见自述文档。

似乎以下行在错误消息中最重要:

连接字符串使用应用程序的App_Data目录中的数据库位置指定本地Sql Server Express实例。

无效的两个视图都实例化,AccountController并在其中使用以下方法:

[Authorize]
public …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc connection-string web-config azure azure-sql-database

5
推荐指数
1
解决办法
1853
查看次数

Filterrific,在一个视图的控制器中初始化多个模型

我充满了Filterrific带来的灵活性.

但我想知道,如何在一个视图中处理多个ActiveRecord模型的过滤.

有没有办法在控制器中初始化时将多个模型添加到filterrific实例变量?

因此,不要像下面的示例代码那样传递一个模型类,而是添加其他模型类.

@filterrific = initialize_filterrific(
  Student, #add another set of parameters for a second model somewhere here
  params[:filterrific],
  select_options: {
    sorted_by: Student.options_for_sorted_by,
    with_country_id: Country.options_for_select
  },
  persistence_id: 'shared_key',
  default_filter_params: {},
  available_filters: [],
) or return
Run Code Online (Sandbox Code Playgroud)

如果无法添加多个模型,是否有另一种方法可以处理需要基于多个模型进行过滤的方案?也许另外在单独的实例变量中初始化filterrific?

谢谢!

ruby-on-rails ruby-on-rails-4 filterrific

5
推荐指数
0
解决办法
447
查看次数

我的 SQL Create Table As 的语法错误

我正在尝试基于两个现有表在 Microsoft SQL Server Management Studio 中创建一个新表。

当我执行下面的查询时,我收到一条错误消息,指出有一个:

关键字“SELECT”附近的语法不正确。

SQL 代码:

CREATE TABLE NEW_TABLE AS
 SELECT OLD_TABLE.A
    , OLD_TABLE.B
    , OTHER_OLD_TABLE.C
 FROM OLD_TABLE
 INNER JOIN OTHER_OLD_TABLE
 ON OLD_TABLE.A = OTHER_OLD_TABLE.D;
Run Code Online (Sandbox Code Playgroud)

我查看了其他各种问题,但找不到我的解决方案。你知道语法有什么问题吗?

sql-server ssms

2
推荐指数
1
解决办法
1万
查看次数