Intereting Posts
Как изменить владельца базы данных SQL Server? TSQL проверяет, существует ли определенная последовательность строк Структура Entity очень медленно загружается в первый раз Циклы в динамическом SQL Преобразование BINARY, сохраненного как VARCHAR, в BINARY Почему я получаю ошибку «Тип данных Xml не поддерживается в распределенных запросах» при запросе связанного сервера для данных, отличных от xml? Подсчет DISTINCT по нескольким столбцам Поставщик для SQL Server не регистрируется на локальной машине Как создать CTE SQL Server 2005 для возврата родительских записей, для детей с несколькими родителями Группа DateTime на 5,15,30 и 60-минутные интервалы Сохраненная функция с несколькими запросами и разными выбранными столбцами службы отчетов физический путь к папке Ошибка SQL. Идентификатор, начинающийся с … слишком длинный. Максимальная длина: 128 Почему нулевые значения выбираются из набора записей ADO вместо правильных в зависимости от порядка извлечения? (Таблица БД имеет значения NTEXT) Расширенный заказ SQL Server по

Ошибка SQL Server после развертывания веб-приложения для отдельного веб-сервера

Я получаю следующую ошибку, как только я переношу приложение на свой собственный веб-сервер IIS Windows R2 R2, который находится на Prem. Сервер SQL 2014 DB находится в Azure. Брандмауэр отключен.

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

В дальнейшем:

Строка подключения указывает локальный экземпляр Sql Server Express с использованием расположения базы данных в каталоге приложения App_Data. Поставщик попытался автоматически создать базу данных служб приложений, поскольку поставщик определил, что база данных не существует.

Мои строки подключения НЕ указывайте локальную базу данных SQL Express:

<connectionStrings> <remove name ="NewUserToolContext"/> <remove name ="DefaultConnection"/> <add name="NewUserToolContext" connectionString="Data Source=SQLDBSERVERNAME;Initial Catalog=NewUserTool;Integrated Security=False;User Id = USERID;password = PASSWORD" providerName="System.Data.SqlClient" /> <add name="DefaultConnection" connectionString="Data Source=SQLDBSERVERNAME;Initial Catalog=NewUserTool;Integrated Security=False;User Id = USERID;password = PASSWORD" providerName="System.Data.SqlClient" /> </connectionStrings> 

У моего частичного представления _Layout есть код, который проверяет принадлежность к роли перед отображением определенных пунктов меню. После многих поисков по этому вопросу я нашел старые сообщения с 2012 года и один пост со времен 2013 года относительно своего рода инициализатора членства. Сообщение было невероятно расплывчатым и запутанным и не показалось ему актуальным. Он также ничего не объяснил, что делать, особенно не для MVC 6 Entity Framework в 2017 году. Я пробовал, я не мог найти ничего, о чем они говорили. Я начал изучать ASP.NET в прошлом году с помощью MVC 6.

Solutions Collecting From Web of "Ошибка SQL Server после развертывания веб-приложения для отдельного веб-сервера"

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

  1. В меню «Пуск» выберите «Выполнить», введите «WF.msc» и нажмите «ОК».
  2. В брандмауэре Windows с расширенной безопасностью в левой панели щелкните правой кнопкой мыши Правила входящих сообщений и выберите Новое правило в панели действий (в правом верхнем углу).
  3. В диалоговом окне «Тип правила» выберите «Порт» и нажмите «Далее».
  4. В диалоговом окне «Протокол и порты» выберите TCP. Выберите «Определенные локальные порты», а затем введите номер порта экземпляра Database Engine, по умолчанию SQL Server использует 1433. Введите 1433 и нажмите «Далее», чтобы завершить шаги.

Во-вторых, вам также необходимо включить порт 1433 в группе Network Security Group, который связан с вашей виртуальной машиной. Ниже приведены шаги для вашей справки.

  1. Найдите имя группы сетевой безопасности, относящуюся к вашей виртуальной машине в панели интерфейсов Netowrk.

введите описание изображения здесь

  1. Откройте NSG, нажмите кнопку [Добавить] на панели правил безопасности входящих сообщений

введите описание изображения здесь

  1. Добавьте правило следующим образом.

введите описание изображения здесь

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

Редактировать 2017/6/13

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

Кроме того, ваш веб-сервер размещен на Azure VM или на локальной машине?

Также попробуйте включить 32-битные приложения в расширенные настройки пула приложений.

введите описание изображения здесь

Некоторые другие вещи, которые вы могли бы попробовать.

  1. Проверьте, настроили ли вы динамическую защиту IP или ipSecurity в свой web.config. Он будет блокировать любые IP-адреса на основе вашей конфигурации.

  2. Вы пытались удалить все исходные файлы на тестовом сервере при развертывании своей версии?

введите описание изображения здесь

После того, как наконец выяснилось, что он не использует правильные строки подключения, которые я предоставил в LocalSqlServer web.config , а скорее в LocalSqlServer подключения LocalSqlServer в machine.config , я вскоре понял, что он использует это, потому что на него ссылались в AspNetSqlMembershipProvider и AspNetSqlProfileProvider и роли поставщика в файле machine.config. Мне пришлось найти / заменить все, ссылаясь на LocalSqlServer и заменить его именем подключения, которое я хотел использовать, DefaultConnection . Затем мне пришлось запустить aspnet_regsql.exe на моей машине разработчика из командной строки visual studio и указать ее в базу данных для создания схемы. После этого мое приложение начало работать.