F.A.Q. по ASP
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



F.A.Q. по ASP Expand / Collapse
Автор
Сообщение
30.05.2006 10:27
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
Здесь находятся ответы на часто задаваемые вопросы по технологии ASP (Active Server Pages).

Для добавления сюда новых вопросов обращайтесь к модераторам.

Сообщ. #897780
30.05.2006 10:40
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
Вопрос: Почему ASP выдает ошибку при операциях INSERT/UPDATE/DELETE с базой MS Access (*.mdb)?

Ответ: Если при попытке изменения данных вам выдается одна из ошибок:

  • Microsoft OLE DB Provider for ODBC Drivers error '80004005'
    [Microsoft][ODBC Microsoft Access 97 Driver] Operation must use an updateable query.
  • Служба доступа Microsoft OLE DB для драйверов ODBC ошибка '80004005'
    [Microsoft][Драйвер ODBC для Microsoft Access 97] В операции должен использоваться обновляемый запрос.

то проверьте, что у файла *.mdb сброшен атрибут "Только чтение" и что пользователь IUSR_имяКомпьютера имеет NTFS права на запись на *.mdb файл.

Пользователям Windows XP для установки NTFS прав может сначала потребоваться отключить режим Simple File Sharing:

Для того чтобы вернуть всё как было в W2k, необходимо в Windows Explorer выбрать меню Tools - Folder Options. В открывшемся окне выбрать закладку View, и в разделе Advanced Settings очистить чекбокс Use simple file sharing (Recommended).

http://www.3dnews.ru/reviews/software/win-xp-faq/index03.htm#17

Другие возможные причины данной ошибки описаны в статье базы знаний Microsoft PRB: ASP возвращает ошибку "В операции должен использоваться обновляемый запрос"

Сообщ. #897781
08.06.2006 12:32
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
Вопрос: Как отправить почту с использованием компонентов CDO?

Ответ: В состав Windows 2000 и выше входит стандатный компонент Collaboration Data Objects (CDO) for Windows 2000. В Windows NT тоже есть библиотека CDO (CDO 1.2.1), однако она уже устарела и рассматривать ее нет смысла.

Сначала определим общие константы.

Const cdoSendUsingMethod = "http://schemas.microsoft.com/cdo/configuration/sendusing"
Const cdoSMTPServer = "http://schemas.microsoft.com/cdo/configuration/smtpserver"
Const cdoSMTPServerPort = "http://schemas.microsoft.com/cdo/configuration/smtpserverport"

Const cdoSendUsingPickup = 1
Const cdoSendUsingPort = 2
Const SMTP_SERVER = "localhost"

Функции отправки почты: SendTextMail отправляет текстове письмо, а SendHtmlMail соответственно html письмо.

Function SendTextMail(mailfrom, mailto, subject, textBody)
 Set iMsg = Server.CreateObject("CDO.Message")
 Set iConf = Server.CreateObject("CDO.Configuration")
 Set Flds = iConf.Fields
 With Flds
  .Item(cdoSendUsingMethod) = cdoSendUsingPort
  .Item(cdoSMTPServer)      = SMTP_SERVER
  .Update
 End With
 
 With iMsg
  Set .Configuration = iConf
  .BodyPart.Charset = "windows-1251"
 
  .From = mailfrom
  .To = mailto
 
  .Subject = subject
  .TextBody = textBody
  .Send
 End With
 
 Set iMsg = Nothing
 Set iConf = Nothing
 Set Flds = Nothing
End Function

Для упрощения примера показано только отличие от функции SendTextMail.

Function SendHtmlMail(mailfrom, mailto, subject, htmlBody)
 ...
 With iMsg
  ...
  .Subject = subject
  .HtmlBody = htmlBody
  .Send
 End With
 ...
End Function

Обратите внимание на строки:

.Item(cdoSendUsingMethod) = cdoSendUsingPort
.Item(cdoSMTPServer) = SMTP_SERVER

Здесь указывается, что почта будет отправляться через SMTP сервер. Если у вас установлен локальный SMTP сервис от IIS, то можно отправлять почту используя так называемую Pickup папку. По умолчанию это C:\Inetpub\mailroot\Pickup\. Файл созданный в этой папке будет автоматически обработан SMTP сервисом и отправлен адресатам. Отправка через Pickup папку можнт оказаться более эффективной чем отправка через SMTP сервер, так как исключается процесс установки соединения с 25 портом и передача SMTP команд.
Сообщ. #898321
19.06.2006 12:56
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
Вопрос: Как отправить письмо с присоединенным файлом с использованием компонента CDO?

Ответ: Используйте метод AddAttachment из интерфейса IMessage.

Используя, вышеуказанный пример, пишем:

With iMsg
 ...
 .AddAttachment(Server.MapPath("/file.doc"))
 ...
End With
Сообщ. #899081
14.08.2006 1:27


Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

модератор
Last Login: 29.10.2007 14:45
Сообщ.: 1 833, Visits: 16 863
Вопрос: Я получил в браузере ошибку 500 - Внутренняя ошибка сервера (500 Internal Server Error).

Ответ: Это описание генерирует Internet Explorer, тем самым скрывая истинную ошибку и показывая "дружественное" описание с некоторыми советами. Для того, чтобы отключить данную функцию и увидеть реальный ответ сервера (описание ошибки), нужно на вкладке Advanced в диалоге Internet Options (Tools -> Internet Options) снять флажок "Show friendly HTTP errors".

Тем кто использует для разработки IIS под русской версией Windows может получать в тексте ошибки нечитаемые символы вместо русских букв. Чтобы это исправить измените кодировку внутри файла %windir%\Help\iisHelp\common\500-100.asp c windows-1252 на windows-1251.

Сообщ. #902664
22.08.2006 12:57
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
Вопрос: Почему ASP выдает ошибку 'ASP 0131'?
Вопрос: Почему выдаются ошибки при попытке включить файл из родительского каталога?

Ответ: Это происходит из-за того что в настройках приложения IIS отключена опция "Enable parent paths". В IIS6 она выключена по умолчанию из соображений безопасности (см. KB332117 - Enable Parent Paths Is Disabled by Default in IIS 6.0).

Чтобы исправить ошибку включайте файлы относительно корня сайта (рекомендуемый способ):

<!--#include virtual=/folder/file.asp-->

или включите опцию "Enable parent paths". Для этого запустите IIS Manager. Откройте свойства сайта или приложения, перейдите на закладку "Home Directory" и нажмите кнопку "Configuration". В появившемся диалоге выберите закладку "Options" и включите опцию "Enable parent paths".

Смотрите также: Why do I get ASP 0130 / ASP 0131 errors?

Сообщ. #903102
20.09.2006 18:54
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
Вопрос: Где в сети можно найти полезную информацию о ASP?

Ответ: Вот список ссылок на интересные сайты:

Различные F.A.Q-и.

Статьи для начинающих:

Документация от Microsoft:

(приветствуются новые ссылки)

Сообщ. #904630
06.02.2007 17:23
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
Вопрос: Как в ASP скачать файл по HTTP? Как в ASP сделать GET/POST запрос к другому серверу?

Ответ: Используйте стандартный компонент ServerXMLHTTP из состава MSXML. Пример использования:

Dim objSrvHTTP
Set objSrvHTTP = CreateObject("MSXML2.ServerXMLHTTP")
objSrvHTTP.Open "GET", "http://example.com/folder/page.html", False
objSrvHTTP.Send
If objSrvHTTP.Status = 200 Then
    Response.Write objSrvHTTP.responseText
End If
Set objSrvHTTP = Nothing
Сообщ. #910479
26.06.2007 16:42
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
Вопрос: Почему у меня не работают сессии?

Ответ: Смотрите список рекомендаций в статье Why won't my session variables stick?

Сообщ. #914345
09.08.2007 16:21