2010-06-03 2 views
1

Я пытаюсь вызвать страницу ASP.NET с классической страницы ASP на том же компьютере. Страница ASP находится в каталоге c: \ inetpub \ wwwroot. На странице ASP.NET находится в C: \ Inetpub \ Wwwroot \ WebServiceWrapper \Вызов страницы ASP.NET с ASP-страницы

Вот код ASP для вызова страницы:

Dim objHttp, strQuery 
set objHttp = Server.CreateObject("Msxml2.ServerXMLHTTP") 
strQuery = "http://localhost/WebServiceWrapper/CalledFromAsp.aspx?First=Steve&Last=Smith&DOB=11/25/2001&Gender=M" 
objHttp.open "POST", strQuery, false 
objHttp.send 
Set objHttp = Nothing 

Код ASP.NET, который вызывает веб-службы и устанавливает cookie, работает, если я вызываю его из браузера напрямую. Однако, используя объект Msxml2.ServerXMLHTTP, это не так. Файл cookie не генерируется и ошибок нет. В Event Viewer нет событий.

Страница ASP.NET была разработана в Visual Studio 2005, .NET 2.0. Изменение POST в GET не помогло.

Любые идеи?

+0

Итак, запрос на 'CalledFromAsp.aspx' предназначен для установки cookie? Запрос поступает с сервера, но не в браузер, поэтому любой cookie, который отправляется обратно, не будет передаваться в браузер. –

ответ

1

Если вы пытаетесь перенаправить пользователя на страницу ASP.NET, используйте Response.Redirect.

Если вы хотите просто вызвать страницу ASP.NET, чтобы установить файл cookie, когда пользователь посещает вашу страницу ASP, вы можете использовать небольшой и невидимый iframe. Просто установите цель iframe на страницу ASP.NET.

Конечно, вы всегда можете вызвать веб-сервис непосредственно из своего кода ASP и установить там файлы cookie.

-1

Вы пробовали переадресацию через браузер клиента?

Response.Redirect "http://localhost/WebServiceWrapper/CalledFromAsp.aspx?First=Steve&Last=Smith&DOB=11/25/2001&Gender=M" 
+0

@Downvoter: Я полагаю, что объяснение не может быть и речи? –

1

Ваш запрос к веб-службе выполняется вашим сервером, а не браузером пользователя. Файл cookie возвращается на страницу .asp в заголовках ответов. Вам нужно разобрать его и установить в браузере пользователя через Response.Cookies («cookieName») = значение