为什么这个数据库连接失败;应用程序名称=应用程序“;在连接字符串中

本文关键字:应用程序 连接 字符串 数据库连接 失败 为什么 | 更新日期: 2023-09-27 18:21:48

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

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

这一切都很顺利。然后我们决定设置应用程序名称是个好主意,原因如下:

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目录。我查过了,他们是
  • 连接到数据库服务器时出错。我不认为表单身份验证是这样的。它是服务器上的不同数据库,但凭据是相同的

为什么这个数据库连接失败;应用程序名称=应用程序“;在连接字符串中

问题原来是由于服务器上安装的RIA服务版本造成的。

我们最近通过NuGet包管理器将项目更改为包括RIA服务,并且该服务器已经安装了用于VS2010的RIA服务。当我们解决这个问题时,一切都恢复了生机。

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

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

请检查Web服务器配置,并确保数据库安装正确。

在我看来像是webserver config/db安装。