#sql-server #iis-7 #asp-classic
#sql-сервер #iis-7 #asp-classic
Вопрос:
У меня есть сервер разработки и действующий сервер. Оба являются Windows Server 2008 под управлением IIS7 и SQL Server. У меня одинаковые базы данных в обеих, доступ к которым я получаю с помощью Classic ASP.
На моем сервере разработки все работает нормально, и я могу создать набор записей со всеми данными, как и ожидалось. На моем рабочем сервере верно точно то же самое, за исключением того, что в возвращаемом наборе записей одно из значений поля (т. Е. один из столбцов) является пустым. Я запустил запрос на сервере в SQL Server, и данные определенно есть, но страница ASP не извлекает их.
Учитывая, что на двух серверах все практически идентично, и один работает, а другой нет, похоже, что это может быть способ настройки Classic ASP на IIS7. Значение поля, которое не возвращается, — это varchar (МАКСИМУМ), возможно, из 100 символов. Есть ли что-нибудь в классическом ASP на IIS7, что могло бы помешать возврату этих данных на страницу ASP?
Спасибо
Ответ №1:
Какова ваша строка подключения?
По этой ссылке похоже, что у некоторых старых поставщиков, например SQLNCLI
, есть проблемы. Попробуйте SQLOLEDB
или SQLNCLI10
.
Дополнительная информация из MSDN.
Комментарии:
1. Это выглядит действительно интересно. Я не могу проверить это на реальном компьютере сегодня, но я обязательно посмотрю на это завтра. Спасибо.
2. Изменение строки подключения на SQLNCLI10 решило проблему. Спасибо!
Ответ №2:
Является ли результат результатом конкатенации строк?
Возможно, для сервера разработки CONCAT_NULL_YIELDS_NULL
установлено значение OFF
, а для live — значение ON
.
(это параметр SQL Server, а не IIS ..)
Комментарии:
1. Я не уверен, но я не думаю, что это может быть так. Когда я запускаю запрос на SQL Server, он показывает данные такими, какими они должны быть, поэтому я бы не подумал, что это может быть настройкой SQL Server. Проблема возникает только тогда, когда я пытаюсь извлечь эти данные с помощью ASP.