У меня есть приложение ASP.NET, которое получает данные из SQL Server Express на том же компьютере. Когда я запускаю проект ASP.NET из Visual Studio, проект может без проблем добраться до базы данных. Однако при публикации в IIS проект теряет соединение. Вот моя строка подключения, расположенная в Web.config
:
<connectionStrings>
<add name = "conString"
providerName = "System.Data.SqlClient"
connectionString = "Server = DESKTOP-EVAN\SERVER;Database=master;User ID=sa;Password=12345;" />
</connectionStrings>
Доступ к проекту можно получить в опубликованном IIS, однако там нет данных и не отображаются сообщения об ошибках.
Я добавил пул приложений и NT Authority
в логин SQL, но все равно не удалось подключиться к базе данных.
У кого-нибудь есть опыт в этом? Как мне подключить опубликованный проект ASP.NET к моему SQL Server Express?
Да, сервер IIS и Visual Studio находятся на одном компьютере.
Вы пытались удалить пробелы для сервера следующим образом:
Server=DESKTOP-EVAN\SERVER
Да, та же проблема
В вашей строке подключения указана база данных «master». Вы уверены, что это правильно? Обычно вы создаете новую базу данных, а не используете ее.
master
там, где столы, так что это правильно. Соединение работает при работе в Visual Studio, поэтому я думаю, что строка подключения в порядке, но я не уверен, почему она не работает при публикации.
Когда вы запускаете сайт под VS, пользователь работает как ваш локальный пользователь Windows. При развертывании в IIS он запускается как пользователь пула приложений. Проверьте, под каким пользователем это работает, перейдя в IIS> Сайты> Щелкните правой кнопкой мыши сайт> Управление веб-сайтом> Дополнительные настройки. Это пользователь, от имени которого он работает, и этому пользователю может потребоваться доступ к SQL. Если вам нужно добавить новый пул приложений, посмотрите здесь: docs.microsoft.com/en-us/iis/configuration/…
О боже... он использовал неправильный пул приложений... Теперь все работает, большое спасибо. Я слишком долго пытался решить эту проблему. я тебя люблю
Вы установить SQL Server Express на той машине, где работает IIS, или на машине, к которой можно получить доступ с машины IIS?
Также: вы явно определили отдельный имя экземпляра для вашего SQL Server Express при установке?
По умолчанию имя экземпляра будет SQLEXPRESS
— но вы, кажется, ссылаетесь на DESKTOP-EVAN\SERVER
— поэтому SERVER
будет вашим именем экземпляра — так ли это??
Если не: можете вместо этого попробовать DESKTOP-EVAN\SQLEXPRESS
в качестве имени сервера/экземпляра?
<connectionStrings>
<add name = "conString"
connectionString = "Server=DESKTOP-EVAN\SQLEXPRESS;Database=master;User ID=sa;Password=12345;"
providerName = "System.Data.SqlClient" />
</connectionStrings>
SQL Express Server и IIS находятся на одном компьютере. Да, я только что дважды проверил, имя экземпляра SERVER
. Это работает, если я запускаю из Visual Studio, база данных обновляет веб-страницы, но при публикации в IIS соединение теряется.
@GreenSaber та же проблема. у тебя есть решение?
У меня это работает сейчас, но прошло некоторое время с тех пор, как я опубликовал это. Вот моя новая строка подключения в web.config, надеюсь, поможет: <add name = "conString" providerName = "System.Data.SqlClient" connectionString = "Server=DESKTOP-EXAMPLE\DATABASE;Database=master;User ID=exampleuser;Password=password;MultipleActiveResultSets=True;" />
Вы должны разрешить пользователю использовать iis в целях безопасности. Вот одно видео: https://thewikihow.com/video_rmVtxLKmkDU
Я надеюсь, что это поможет вам.
Я добавил IIS в систему безопасности, но он все еще не подключается
Находится ли сервер IIS на том же компьютере, что и компьютер, на котором запущена Visual Studio?