当“Application Name = application”在连接字符串中时,为什么此数据库连接失败?

时间:2012-01-30 14:16:12

标签: c# silverlight connection-string wcf-ria-services

我们正在编写一个多租户的Silverlight应用程序。用户使用Windows窗体身份验证登录,我们从表中提取该用户的连接字符串。字符串的格式为:

Data Source=1.2.3.4; Initial Catalog=database; Persist Security Info=True; User ID=######; Password=##########

这很好用。然后我们决定设置应用程序名称,原因outlined here将是一个好主意:

Data Source=1.2.3.4; Initial Catalog=database; Application Name=application; Persist Security Info=True; User ID=######; Password=##########

但是,现在没有建立连接,所以我们遇到了错误。这仅在部署的站点上失败。通过Visual Studio运行显然不受影响。进行连接的代码没有任何变化。我愿意相信应该有变化,但我无法弄清楚它们应该是什么。

正在创建连接:

public class OurDataContext : DataContext
{
    public OurDataContext()
        : base(SessionCache.OurConnectionString)
    {
        ....
    }
 }

SessionCache.OurConnectionString是从数据库中读取的字符串。

更新

连接字符串的更改可能是红鲱鱼。我们只在一台Web服务器上遇到此故障(我无法直接访问该服务器)。将该属性添加到另一个Web服务器(我 有权访问)引用的数据库不会重现该问题。这使我得出结论,错误在其他地方。但是,我仍然没有接近解决这个问题。

实际错误是一个例外:

An exception of type 'System.ServiceModel.DomainServices.Client.DomainOperationException' occurred and was caught.
------------------------------------------------------------------------------------------------------------------
01/31/2012 14:18:53  
Type : System.ServiceModel.DomainServices.Client.DomainOperationException, System.ServiceModel.DomainServices.Client, Version=2.0.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
Message : Load operation failed for query 'GetUserSecurityConfig'. The remote server returned an error: NotFound.
Status : ServerError
ErrorCode : 0
Data : System.Collections.ListDictionaryInternal
Stack Trace : The stack trace is unavailable.

我今天所做的所有研究都返回了不应该更改的一些相当基本的事情:

  • System.ComponentModel.DataAnnotations,System.ServiceModel.DomainServices.EntityFramework,System.ServiceModel.DomainServices.Hosting和System.ServiceModel.DomainServices.Server未被复制到\ bin目录。我已经检查了,他们是。
  • 连接到数据库服务器的错误。我不认为这是表格认证工作的情况。它是服务器上的不同数据库,但凭据是相同的。

2 个答案:

答案 0 :(得分:1)

问题原因是服务器上安装了RIA服务版本。

我们最近通过NuGet包管理器将项目更改为包含RIA服务,并且此服务器已安装了VSIA10的RIA服务。当我们对它进行分类时,一切都会重现生机。

目前尚不清楚为什么这个问题花了这么长时间才显现出来。

答案 1 :(得分:0)

  

我们只在一台Web服务器上遇到此故障(我无法直接访问该服务器)。将该属性添加到另一个Web服务器(我有权访问)引用的数据库中不会重现该问题。

检查webserver配置并确保数据库安装正确。

对我来说看起来像webserver config / db installion。