SQL Express 2005 работает локально. У меня есть проект, написанный другим человеком, работающий на той же машине. Все, что я хочу сделать, это подключиться к нему, не может быть так сложно, правда?
Это тот, который я использую в своем старом классическом коде ASP для обращения к другой базе данных, работающей в том же экземпляре:
Provider = SQLOLEDB; Data Source = MYLAPTOP \ MSSMLBIZ; Persist Security Info = True; User ID = TestUser; Password = letmein; Initial Catalog = TestDB
Но попытка такой версии заставляет .net-код запускать воблер, поскольку он написал его с использованием драйверов SQLServer, поэтому ему не нравится материал Provider.
Вот исходная строка подключения из его кода:
Сервер = (локальный); Исходный каталог = База данных; Идентификатор пользователя = Пользователь; Пароль = Пароль;
Я был на http://www.connectionstrings.com/sql-server-2005 и попробовал несколько вариантов оттуда, все они получили «SQL Server не существует или доступ запрещен» (какое прекрасное смешанное сообщение об ошибке!):
- Источник данных = localhost; Integrated Security = True; Initial Catalog = TheDatabase
- Источник данных = localhost \ SQLEXPRESS; Integrated Security = True; Initial Catalog = TheDatabase
- Источник данных = MyLaptop \ SQLEXPRESS; Встроенная безопасность = True; Начальный каталог = TheDatabase
- Сервер = MyLaptop \ SQLEXPRESS; Исходный каталог = База данных; Идентификатор пользователя = Пользователь; Пароль = Пароль;
Я создал логины для MyLaptop / IUSR_MyLaptop, MyLaptop / ASPNET, MyLaptop / IWAM_MyLaptop в SQL Express и дал им всем разрешения на чтение / запись для моей БД и установил их БД по умолчанию как TheDatabase.
Что, черт возьми, я делаю не так и как мне еще немного отладить проблему?
ОБНОВЛЕНИЕ: Особая благодарность Крису за все его указатели, попавшие туда в конце, если у вас возникла подобная проблема, прочтите все комментарии, там есть много ссылок и советов о том, как их отследить.