Почему это соединение с базой данных не работает, если в строке подключения указано «Application Name = application»?

Мы пишем мультитенантное приложение Silverlight. Пользователь входит в систему, используя проверку подлинности Windows Forms, и мы извлекаем строку подключения для этого пользователя из таблицы. Строка имела вид:

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 - это строка, прочитанная из базы данных.

ОБНОВЛЕНИЕ

Изменение строки подключения может быть отвлекающим маневром. Мы получаем этот сбой только на одном веб-сервере (к которому у меня нет прямого доступа). Добавление свойства в базу данных, на которую ссылается другой веб-сервер (к которому у меня действительно есть доступ), проблема не воспроизводится. Это приводит меня к выводу, что ошибка где-то в другом месте. Однако я все еще не приблизился к решению этой проблемы.

Фактическая ошибка является исключением:

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. Я проверил, и они есть.
  • Ошибки при подключении к серверу базы данных. Я не думаю , что это так, поскольку аутентификация с помощью форм работает. Это другая база данных на сервере, но учетные данные те же.

9
задан ChrisF 31 January 2012 в 05:09
поделиться