【问题标题】:Calling an ASP.NET page from an ASP page从 ASP 页调用 ASP.NET 页
【发布时间】:2010-06-03 14:58:16
【问题描述】:

我试图从同一台机器上的经典 ASP 页面调用 ASP.NET 页面。 ASP 页位于 c:\inetpub\wwwroot。 ASP.NET 页面位于 C:\Inetpub\wwwroot\WebServiceWrapper\

这里是调用页面的 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

调用 Web 服务并设置 cookie 的 ASP.NET 代码如果我直接从浏览器调用它就可以工作。但是,使用 Msxml2.ServerXMLHTTP 对象,它不会。 cookie 没有生成,也没有错误。事件查看器中没有事件。

ASP.NET 页面是在 Visual Studio 2005 .NET 2.0 中开发的。将 POST 更改为 GET 并没有帮助。

有什么想法吗?

【问题讨论】:

  • 所以对CalledFromAsp.aspx的请求是为了设置cookie?请求来自服务器而不是浏览器,因此任何被发回的 cookie 都不会传递到浏览器。

标签: asp.net asp-classic


【解决方案1】:

如果您尝试将用户重定向到 ASP.NET 页面,请使用 Response.Redirect

如果你只是想在用户访问你的 ASP 页面时调用 ASP.NET 页面来设置 cookie,你可以使用一个小的不可见的 iframe。只需将 iframe 目标设置为您的 ASP.NET 页面即可。

当然,您总是可以直接从您的 ASP 代码调用 Web 服务并在那里设置 cookie。

【讨论】:

    【解决方案2】:

    您对网络服务的请求是由您的服务器发出的,而不是用户的浏览器。 cookie 在响应标头中返回到 .asp 页。您需要将其解析出来并通过Response.Cookies("cookieName") = value在用户的浏览器上设置它

    【讨论】:

      【解决方案3】:

      您是否尝试过通过客户端的浏览器进行重定向?

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

      【讨论】:

      • @Downvoter:我想解释是不可能的?
      猜你喜欢
      • 1970-01-01
      • 2011-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-06
      • 2011-02-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多