2010-11-10 60 views
1

我有一種情況,即使用功能在asp頁面中生成我的連接字符串。完全可能需要此功能在.net中從頭開始,這是冗餘。爲了避免這種情況,我想從.asp頁面獲取連接字符串變量到.net頁面,即aspx.cs.是否有可能做到這一點。從谷歌我已經能夠得到的幾個選項是Server.Execute並通過.net發送一個Web請求到.asp頁面,並獲得這些值。我想知道與這種方法相關的延遲,如果它實際上是可能的。如何使用Ajax在.aspx.cs頁面中的.asp頁面中獲取變量值

有一個文件getconnstring.asp ...經典的asp文件 在這個文件中,我構建連接字符串像

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

我想在一個asp.net網站在使用這個變量值一個getconnstring.aspx.cs.可以使用Ajax請求。

+0

你能解釋一下好嗎,在asp頁面中「生成連接字符串」是什麼意思?我希望你實際上不想讓你的連接字符串公開訪問? – Groo 2010-11-10 09:44:13

+0

你的意思是你想要一個值(連接字符串)從你的.cs頁面到.aspx頁面? – NayeemKhan 2010-11-10 10:31:57

+0

構建連接字符串可能會非常困難,您會考慮執行.asp頁面來獲取它。 (內部)請求的延遲和可能的安全風險應該足以說服你,這可能不是一個好主意。 – 2010-11-10 11:31:25

回答

0

我發佈了另一個答案,所以我可以發佈一些代碼不會出現亂碼。以下是基於任務的版本。

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(); 
+0

遠程服務器返回錯誤:(403)禁止。你能否提供任何幫助 – gizgok 2010-11-10 12:06:23

+0

嘗試使用瀏覽器首先瀏覽網址,並確保網址有效,並確保它返回你想要的值/信息。一旦確認,你應該能夠使用提供的代碼來「自動化」它。儘管如此,從這個角度來看,很難在「遠程」的細節層面提供幫助。 – 2010-11-10 12:11:04

+0

我確實認爲這個問題已經得到解答,所以我會很樂意接受一個答案:) – 2010-11-10 12:12:43

2

通過從您的asp.net應用程序向您的.asp應用程序創建WebRequest,可以從.asp應用程序獲取連接字符串或任何其他信息。

但是,根據兩者相對於彼此的位置會有延遲問題。所以我會得到一次信息,然後將它保存到一個文件或其他東西,然後在下次讀取它。

+0

如果連接字符串是靜態的(即不依賴於當前用戶等),那麼我會從Global.asax的Application_Start中的ASP應用程序中獲取它並將其存儲在某個靜態變量中。否則,將其緩存在內存中(例如ASP.NET緩存)將比存儲在文件中更好。但是,最重要的問題是安全性 - 例如,如果您的asp應用程序可以使用HTTP請求將連接字符串返回到ASP.NET應用程序,那麼它意味着任何用戶都可以獲得它。你需要有一些機制(asp應用程序不公開,asp應用程序需要一些認證票據來發布連接字符串等) – VinayC 2010-11-10 11:29:42

+0

請你詳細說明如何從你的asp.net應用程序到你的.asp應用程序做WebRequest。 – gizgok 2010-11-10 11:38:16

+0

HttpWebRequest請求=(HttpWebRequest)WebRequest.Create(「http://www.microsoft.com」); HttpWebResponse response =(HttpWebResponse)request.GetResponse(); StreamReader reader = new StreamReader(response.GetResponseStream()); string str = reader.ReadToEnd(); – 2010-11-10 11:45:45

相關問題