Не может Соединиться с Базой данных, когда веб-приложение развертывается на IIS

Как я могу провести рефакторинг этого

С помощью модульных тестов.

Серьезно. Есть два логических входа, поэтому вам нужно только четыре модульных теста, чтобы полностью охватить этот метод.

Затем, с полным охватом веток, вы можете просто поиграть с реализацией. Попробуйте что-то, что кажется правильным (я считаю очень полезным написать таблицу истинности в этом случае), и тесты покажут вам, если вы ошиблись в деталях.

И в качестве дополнительного преимущества, вы можете хранить тесты всегда, как документацию о том, что метод на самом деле делает. Это особенно полезно, если вы выбираете умную реализацию, такую ​​как причудливые логические выражения - если вы царапаете голову, пытаясь следовать потоку, вы можете просто посмотреть на тесты и увидеть: «О, я вижу - если я передать это и это, я получаю это. "

1
задан John Saunders 17 June 2009 в 14:37
поделиться

2 ответа

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

1
ответ дан 3 September 2019 в 01:23
поделиться

Без какого-либо кода или деталей языка трудно угадать, в чем может быть проблема, однако наиболее распространенной проблемой, которая возникает с asp.net, может быть строка подключения к вашей базе данных. Вы используете базу данных SQl Server / Sql Server Express в своем приложении? Вам необходимо проверить строку подключения.

Проблема заключается в настройке Integrated Security = True в строке подключения. IIS использует учетную запись Windows ASPNET, которая будет отличаться от входа в Windows, используемого при запуске из VS. У вас есть несколько вариантов:

  1. Предоставить пользователю ASPNET необходимые права доступа к вашей базе данных
  2. Использовать аутентификацию на сервере Sql: Настройте пользователя в базе данных в качестве входа в систему sql и передайте это имя пользователя / пароль в строке подключения и установите Integrated Security = False
  3. . Измените идентификатор, под которым работает IIS, на тот, который имеет доступ к базе данных.

Там могут быть и другие варианты, но я думаю, что они наиболее распространены. Что выбрать, зависит от архитектуры, в которой вы развертываете, лично я почти всегда использую аутентификацию Sql Server с использованием имени пользователя и пароля. При необходимости файл web.config может быть зашифрован для обеспечения дополнительной безопасности.

1
ответ дан 3 September 2019 в 01:23
поделиться