Ведение журнала ошибок WCF и ошибка SQL Exception 4060

Я пытался скомпилировать / запустить пример приложения WCF с веб-сайта Ювала Лоуи (автора по программированию служб WCF и основателя IDesign) в течение нескольких дней. Пример приложения использует библиотеку Juval's ServiceModelEx, которая записывает ошибки / ошибки в базу данных SQL "WCFLogbook". К сожалению, когда пример приложения выходит из строя, я получаю следующую ошибку:

Исключение SQL 4060: "Не удалось открыть базу данных \"WCFLogbook\", запрошенную при входе в систему. Ошибка при входе.\ R \n Просмотр журнала не удалось для пользователя" Bill-PC\Bill "."

Я подтвердил, что база данных SQL WCFLogbook была создана и предоставил все необходимые разрешения для моего (Bill-PC\Bill) доступа к базе данных. Кроме того, порт 8006 и порт 1433 были открыты в брандмауэре. TCP/IP был включен, и "Разрешить удаленные подключения к этому серверу" был проверен. Я использую следующую конечную точку в файле App.Config:

<client>
     <endpoint name="LogbookTCP"
        address="net.tcp://Bill-PC:8006/LogbookManager"
        binding="netTcpBinding"
        contract="ILogbookManager"
     />
</client>

К сожалению, SQL - это "мир", в который мне раньше не приходилось рисковать, и я ужасно расстроен отсутствием успеха. Есть ли у кого-нибудь еще предложения о том, как заставить это работать? Я что-то пропустил?

2 ответа

Решение

Не удается открыть базу данных "WCFLogbook", запрошенную при входе в систему

Сообщение об ошибке довольно ясно. Я понимаю ваше разочарование, но сначала я доверяю сообщению об ошибке, а потом - вашему расследованию. Сообщение об ошибке говорит, что база данных не существует, или ее нельзя открыть, или у пользователя нет доступа к ней. Вы должны подтвердить шаг за шагом, что:

  • ваша служба WCF подключается к ожидаемому экземпляру SQL Server
  • эта база данных WCFLogbook существует в экземпляре SQL Server, к которому вы подключаетесь. Обратите внимание, что если вы установили экземпляр параметров сортировки с учетом регистра, то имя учитывает регистр
  • база данных WCFLogbook онлайн
  • логин Bill-PC\Bill разрешено подключать к базе данных.

SQL Exception 4060: "Cannot open database \"WCFLogbook\" requested by the login. The login failed.\r\nLogin failed for user 'Bill-PC\Bill'."

Совершенно очевидно, что у вас есть ошибка входа в вашу базу данных. Где это исключение? В вашем клиентском приложении или в вызове службы WCF?

Причина, по которой я спрашиваю, - указать вам, где отлаживать; если исключение исходит из договора об ошибке при вызове WCF, оно, скорее всего, происходит в самой службе. Если это в клиентском приложении, то, очевидно, именно в этом проблема.

Какую версию SQL вы используете? Если у вас есть SQL Express, то по умолчанию у вас должно быть достаточно прав для запуска приложения. Ваш пользователь администратор? Вам может потребоваться открыть базу данных как администратор, а затем убедиться, что Bill-PC\Bill имеет логин и сопоставлен со схемой dbo в базе данных WCFLogbook.

Другие вопросы по тегам