2011-08-31 95 views
0

編輯
我們正在尋找多一點了。結果是,如果你經常去這個網站,它不起作用,但是如果你在地址欄上手動輸入/default.aspx,那麼這個功能就可以正常工作。ASP.Net部署的站點不作爲一樣開發站點

我們正在部署一個新的網站,並堅持在網站的第一步。
本質上,用戶填寫1個文本框並點擊保存,將其重定向到下一頁。這是項目名稱。

本地在開發一切正常。我們認爲數據庫完全一樣。但是,在生產服務器上,當用戶單擊保存按鈕時,表單會回發並且不會插入新記錄,也不會發生重定向。

同樣的代碼非常簡單,在這一點上,我們甚至沒有實現錯誤處理,所以如果出現問題,我們會期望看到某種錯誤。
最大的混亂點與數據庫中沒有插入新記錄有關。

任何人都可以想到類似這樣的原因嗎?我可以告訴你,在這個頁面的頁面加載和保存按鈕之間(現在只有2個代碼片段),絕對沒有If語句,Switch語句,For循環,什麼也沒有。這只是從頁面到數據庫的直接流向重定向。

相關的代碼:

var progress_layer = new b_Progress(); 
var business_layer = new Projects(); 
var project = Project.CreateProject(0); 
project.ProjectName = txtProjectName.Text; 
project.Description = txtProjectDescription.Text; 

int id = business_layer.AddProjectAndApplicationInfo(project); // THIS IS WHERE IT SHOULD SAVE 
theSession.ProjectID = id; 
var steps = progress_layer.GetStepsForProject(id); 

progress_layer.CompleteStep(id, steps[0].Seq); 

if (steps.Count() >= 2) 
    Response.Redirect(steps[1].URL); 
+0

如果我們不必猜測代碼是什麼樣子的話,你會得到更好的答案。 –

+0

好吧,你總是可以開始做一個 Response.Write(「<! - 」+ project.ProjectName +「 - >」); 在您致電business_layer之前,確認您的頁面實際上正在接收發布數據。 – kiddailey

回答

2

你需要經過幾個故障排除步驟,因爲這裏有在作怪很多變量(好吧,至少我沒有你的源所以有在我的腦海裏有很多變數)。我想你應該花點時間下載Fiddler2。使用它觀察開發環境中的HTTP流量,並將其與您的產品環境進行比較。

還要確保你的web.configs是相當相似的。要小心跨域問題,並小心XSS(如果ASP.NET認爲值看起來像XSS,默認情況下會回推回傳)。

這將是很高興有更多的信息,如該「下一步」按鈕的代碼。

+0

絕對同意 - 太多變量的方式,像Fiddler2這樣的網絡調試器會告訴你HTTP世界究竟發生了什麼,它會指出問題或至少縮小它的範圍。 – saille

0

我剛剛對我正在開發的網站有這種確切的情況。在我的情況下,罪魁禍首是一個不正確的URL重寫,它實質上是抹去了任何發佈的表單數據。

你能發表任何代碼嗎?

+0

很高興我不瘋狂,但我們沒有做任何我知道的URL重寫。 –