Я создал веб-сервис, который сохраняет некоторые данные в к дб. Но я получаю эту ошибку:
Не может открыть базу данных "тест", который требует вход в систему. Вход в систему перестал работать. Вход в систему перестал работать для пользователя 'xyz\ASPNET'.
Моя строка подключения
Data Source=.\SQLExpress;Initial Catalog=IFItest;Integrated Security=True
Что ж, ошибка ясна, не так ли? Вы пытаетесь подключиться к своему SQL-серверу с помощью пользователя «xyz / ASPNET» - это учетная запись, под которой работает ваше приложение ASP.NET.
Этой учетной записи не разрешено подключаться к SQL Server - либо создайте имя входа на SQL Server для этой учетной записи, либо затем укажите другую допустимую учетную запись SQL Server в строке подключения.
Можете ли вы показать нам свою строку подключения (обновив исходный вопрос)?
ОБНОВЛЕНИЕ: Хорошо, вы используете встроенную проверку подлинности Windows -> вам нужно создать учетную запись SQL Server для "xyz \ ASPNET" на ваш SQL Server - или измените строку подключения на что-то вроде:
connectionString="Server=.\SQLExpress;Database=IFItest;User ID=xyz;pwd=top$secret"
Если у вас есть пользователь «xyz» с паролем «top $ secret» в вашей базе данных.
Я бы выбрал второй вариант: сообщение об ошибке подразумевает, что база данных по умолчанию либо отсутствует, либо в ней нет прав, а не настроена как логин .
Чтобы проверить, настроен ли он как логин
SELECT SUSER_ID('xyz\ASPNET') -- (**not** SUSER_SID)
Если NULL
CREATE LOGIN [xyz\ASPNET] FROM WINDOWS
Если не NULL
USE test
GO
SELECT USER_ID('xyz\ASPNET')
Если NULL
USE test
GO
CREATE USER [xyz\ASPNET] FROM LOGIN [xyz\ASPNET]
Лучшим вариантом будет использование встроенной проверки подлинности Windows, поскольку она более безопасна, чем проверка подлинности sql. Создайте нового пользователя Windows на сервере sql с необходимыми разрешениями и измените пользователя IIS в настройках безопасности пула приложений.