C# 如何使用Ajax在.aspx.cs页面内的.asp页面中获取变量值

C# 如何使用Ajax在.aspx.cs页面内的.asp页面中获取变量值,c#,asp.net,ajax,C#,Asp.net,Ajax,我在asp页面中使用功能生成连接字符串。此功能可能需要在.net中从头开始执行,这是冗余的。为了避免这种情况,我希望将连接字符串变量从.asp页面获取到.net页面,即aspx.cs。有可能做到这一点吗。我从google获得的几个选项是服务器。执行Web请求并通过.net将其发送到.asp页面,然后获取这些值。如果可能的话,我想知道与此方法相关的延迟 有一个文件getconnstring.asp…经典asp文件 在这个文件中,我构建了如下连接字符串 strACHConnection="Provi

我在asp页面中使用功能生成连接字符串。此功能可能需要在.net中从头开始执行,这是冗余的。为了避免这种情况,我希望将连接字符串变量从.asp页面获取到.net页面,即aspx.cs。有可能做到这一点吗。我从google获得的几个选项是服务器。执行Web请求并通过.net将其发送到.asp页面,然后获取这些值。如果可能的话,我想知道与此方法相关的延迟

有一个文件getconnstring.asp…经典asp文件 在这个文件中,我构建了如下连接字符串

strACHConnection="Provider=MSDAORA.1;Password=..."

我希望在asp.net网站中使用此变量值,就像在getconnstring.aspx.cs中一样。是否可以使用Ajax请求。

可以通过从asp.net应用程序向.asp应用程序发出WebRequest,从.asp应用程序获取连接字符串或任何其他信息


但是,会有延迟问题,这取决于两者相对的位置。因此,我会获取一次信息,然后将其保存到一个文件或其他东西中,然后下次再从那里读取。

我正在发布另一个答案,这样我可以发布一些不会被乱码的代码。下面是一个基于任务的版本

var webRequest = WebRequest.Create("http://www.microsoft.com");
webRequest.GetReponseAsync().ContinueWith(t =>
{
  if (t.Exception == null)
  {
    using (var sr = new StreamReader(t.Result.GetResponseStream()))
    {
      string str = sr.ReadToEnd();
    }
  }
  else
    System.Diagnostics.Debug.WriteLine(t.Exception.InnerException.Message);
});
这是一个未经测试的同步版本,但应该可以让您继续使用

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.microsoft.com");
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream());
string str = reader.ReadtoEnd();

你能解释清楚一点吗,在asp页面中“生成连接字符串”是什么意思?我希望你实际上不想让你的连接字符串公开访问吗?你是说你想要一个值(连接字符串)从U.cs页面到.ASPX页面吗?对于构建一个连接字符串你可能会觉得这么困难,你会考虑执行一个.asp页面来获得它吗?(内部)请求的延迟和可能的安全风险应该足以让您相信这可能不是一个好主意。如果连接字符串是静态的(即不依赖于当前用户等),那么我将从ASP应用程序中获取它,并将其存储在某个静态变量中。否则,将其缓存在内存中(例如ASP.NET缓存)将比存储在文件中更好。但是,最重要的问题是安全性—例如,如果您的asp应用程序可以使用HTTP请求将连接字符串返回到asp.NET应用程序,则这意味着任何用户都可以获得该字符串。您需要一些机制(asp应用程序不是公共的,asp应用程序需要一些身份验证票证来发布连接字符串等),您可以详细说明如何从asp.net应用程序向.asp应用程序执行WebRequest请求=(HttpWebRequest)WebRequest.Create(“);HttpWebResponse=(HttpWebResponse)request.GetResponse();StreamReader reader=new StreamReader(response.GetResponseStream());string str=reader.ReadToEnd();在需要时使用Dispose!代码有点混乱,因此有些东西看起来不正确,我对此一无所知。我已经有一段时间没有同步执行此类操作了。远程服务器返回错误:(403)禁止。您能否在此方面提供任何帮助?请先使用浏览器浏览url,并确保该url有效,并且它实际上返回您所需的值/信息。一旦确认,您应该能够使用提供的代码“自动”“它。尽管如此,从这一点开始,在细节层面上“远程”帮助变得很困难。我确实认为这个问题已经得到了回答,因此我希望得到一个被接受的答案:)Shiv您的代码工作得非常好,但它对aspx文件有效。我创建的Web请求仅对Defauly.aspx liek页面有效。当我将url作为asp页面提供时,它给出了403禁止的错误。您能够使用浏览器调用asp页面吗?如果使用浏览器有效,那么使用WebRequest也应该有效,除非为.asp应用程序设置了阻止这些请求的服务器。使用WebRequest与使用浏览器几乎相同。