Я столкнулся с новой проблемой на прошлой неделе. Из-за характера моего проекта и доступного бюджета небольшое веб-приложение для интрасети, над которым я работал, является как тестовым, так и оперативным сервером, а также обслуживает страницы и является сервером sql. Это будет продолжаться по крайней мере до тех пор, пока проект не выйдет из основного цикла разработки. Теперь, когда у проекта есть реальные пользователи, но я продолжаю его разработку, я продублировал базу данных, чтобы иметь надежную копию, с которой можно было бы связываться, что не приведет к хаосу в реальных бизнес-данных и к копии сайта для разработки.
Все было хорошо, пока я не обнаружил аномалию в тестовой копии сайта, все, что использует источник данных sql, правильно извлекало свои данные из тестовой базы данных, но все, что получает свои данные из хранимой процедуры, запускалось в коде позади извлекал данные из базы данных в реальном времени.
Моя путаница связана с тем фактом, что все хранимые процедуры и источники данных sql в конечном итоге указывают на один и тот же параметр строки подключения в файле web.config, чтобы узнать, к чему подключаться. Я просто переименовываю имя базы данных в зависимости от того, загружаю ли я последние изменения на тестовый или живой сайт.
Мой вопрос сводится к тому, почему с одной строкой подключения на каждом сайте мой тестовый сайт, получающий доступ к данным одним способом, получает их из одной базы данных, а доступ к другому получает их данные из другой базы данных?
Вот моя строка подключения, на которую они все указывают, имена / пароли, конечно, меняются по понятным причинам, но структура не повреждена.
<add name="db_Connection" connectionString="Data Source=SERVERNAME;Initial Catalog=DATABASE_live;Persist Security Info=False;User ID=USERID;Password=password" providerName="System.Data.SqlClient"/>
Я добавил ключ в appsettings для ссылки на имя соединения с базой данных, чтобы можно было легко изменить его имя, если это необходимо, без необходимости редактировать десятки страниц кода для вызовов SProc.
<add key="defaultDB" value="db_Connection" />
Я нарушаю какое-то правило, о котором мне ничего не известно, или происходит что-то еще, что мне нужно знать и изменять, чтобы у меня была настоящая среда тестирования, когда я продолжаю разрабатывать активный сайт?
РЕДАКТИРОВАТЬ Этот проект находится в ASP.NET 2.0 VB, исправлено отображение кода.
решение найдено Я нашел решение, спасибо за указатели, они заставили меня искать в другом месте. Когда я скопировал сайт в другое место для тестирования, я забыл обновить свой ключ набора приложений для местоположения сайта, это вызвало следующую часть вызова хранимых процедур для извлечения данных из веб-сайта live.config по-видимому.
System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(pubvar_webConfig)