Доступ к ASP.NET с базой данных, работающей на локальном хосте, через локальную сеть

1

Я использую Microsoft Visual Studio 2013 Ultimate.

У меня есть одно приложение С#, связанное с WSN, чтобы собирать и сохранять все показания датчиков в базе данных. Он работает нормально и стабильно.

Позже я решил добавить приложение ASP.NET (разработанное в том же программном обеспечении), чтобы другие компьютеры в локальной сети могли получить доступ к моей странице и проверить измерения. У меня есть одна веб-форма с несколькими ярлыками и кнопками, чтобы обеспечить перемещение вперед и назад по таблице базы данных. Он отлично работает, когда я запускаю его из Visual Studio, но когда я пытаюсь получить доступ из IIS, он не работает.

У меня есть эта ошибка (основная часть текста):

При установлении соединения с SQL Server возникла связанная с сетью или конкретная ошибка экземпляра. Сервер не найден или не был доступен. Проверьте правильность имени экземпляра и настройте SQL Server для удаленного подключения. (поставщик: сетевые интерфейсы SQL, ошибка: 50 - возникла ошибка выполнения локальной базы данных. Невозможно создать автоматический экземпляр. См. журнал событий приложения Windows для получения сведений об ошибке.

Я установил IIS, и я могу получить доступ к "localhost" из моего браузера (появляется изображение IIS). Я опубликовал сайт с опцией "Опубликовать" из Visual Studio.

Я видел несколько очень похожих вопросов на этом форуме, но я не нашел ответа. Можете ли вы понять, что может быть проблемой?

С уважением.

  • 0
    Учетная запись, под которой работает пул приложений вашего сайта, должна иметь доступ к SQL Server. Вы можете подтвердить это, изменив учетную запись пула приложений на свою учетную запись, поскольку вы говорите, что она работает при запуске из VS. PS. Не оставляйте сайт работающим под вашей учетной записью, так как это не очень хорошая практика.
  • 0
    Пожалуйста, не могли бы вы конкретизировать, что мне следует изменить в IIS.
Показать ещё 3 комментария
Теги:
visual-studio-2013

6 ответов

1
Лучший ответ

http://www.codeproject.com/Articles/674930/Configuring-IIS-ASP-NET-and-SQL-Server

Все хорошо объяснено. Просто следуйте процедуре, и это будет... Да, решила. :)

1

Я думаю, что ответ DeanOC будет применяться, если вы используете свой вход в Windows для подключения к серверу sql (в строке подключения у вас будет Integrated Security = true), и в этом случае:

  1. В IIS выберите веб-приложение в верхней части страницы, нажмите "Дополнительные настройки", появится диалоговое окно, в котором вы увидите, какой пул приложений используется ваш веб-сайт
  2. Закрыть диалоговое окно "Пулы приложений", щелкните правой кнопкой мыши нужный пул приложений и перейдите к дополнительным настройкам
    1. Измените идентификатор пула приложений в разделе "Модель процесса" на текущий вход в Windows.
  • 0
    Спасибо! Теперь я могу подключиться через IIS, но когда я попытался получить доступ к тому же адресу с другого компьютера (или мобильного телефона) в сети (все подключены к одному и тому же Wi-Fi), я получил сообщение об ошибке и не смог получить доступ к странице ,
0

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

Data Source='server IP';Initial Catalog='database name';Persist Security Info=True;User ID='your user name';password='your password'

перейдите по видео введите описание ссылки здесь

0

Вы можете включить TCP/IP в конфигурации SQL Server.

Microsoft SQL Server xxx → Инструменты настройки → Диспетчер конфигурации SQL Server → Выберите TCP/IP. Щелкните правой кнопкой мыши и выберите

Таким образом, вы можете успешно подключиться с вашего локального компьютера, но это не удается при доступе к IIS другого сервера.

  • 0
    Как включить это в Visual Studio 2013?
  • 0
    Нет, с помощью диспетчера конфигурации SQL Server, где вы установили SQL Server
Показать ещё 2 комментария
0

Я думаю, вы пытаетесь получить доступ к веб-странице с другого компьютера в сети, а не с SQL-сервером, и в этом случае вам нужно добавить привязку к вашему сайту. По умолчанию сайт привязан только к порту localhost 80, то есть он будет доступен только с одного компьютера. Вам понадобится URL-адрес с записями dns или статический IP-адрес для подключения к вашей машине. Проверьте привязки IIS:

  1. http://blogs.technet.com/b/chrad/archive/2010/01/24/understanding-iis-bindings-websites-virtual-directories-and-lastly-application-pools.aspx
  2. http://technet.microsoft.com/en-us/library/cc731692(v=ws.10).aspx
  • 0
    У меня нет статического IP-адреса, потому что я подключаюсь по Wi-Fi университета. У нас есть прокси, который включает только порт 80, но наш администратор сказал мне, что это соединение должно быть возможным, потому что мы локальная сеть.
0

Сообщение подразумевает, что либо экземпляр сервера sql, на который вы указываете, не работает, либо указывает на неправильный экземпляр SQL-сервера. Если вы можете запускать приложение из visual studio, тогда сервер sql должен работать, и это будет означать, что ваша строка подключения неверна.

Во время публикации msbuild будет запускать конфигурационные преобразования, т.е. Если профиль сборки настроен на выпуск, он изменит строки подключения в web.config на те, которые находятся в web.release.config. Проверьте свои строки подключения на веб-сайте IIS, а также проверьте правильность пароля.

  • 0
    Да, я выбрал «release» в качестве профиля сборки и увидел предупреждение о том, что база данных не поддерживается. Но когда я переключился на «отладку», это было то же самое, поэтому я продолжил «выпуск». В Интернете (файл конфигурации XML) я вижу хорошее имя для строки подключения в поле <connectionStrings> </ connectionStrings> с хорошим путем, но я не знаю, были ли изменены некоторые параметры. При создании базы данных я не добавил пароль для аутентификации.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню