2011-09-29 81 views
0

環境的建議:極品ASP.Net或IIS請求URL重整

  • Server 2008的
  • IIS 7,集成模式
  • .NET 4中
  • ASP.NET Web窗體路由(使用與MVC路由相同的.dll,儘管我不確定哪個版本)
  • 無Cookie會話(會話ID遍歷用戶的URL)。

我們有一個應用程序使用路由來確定用戶與哪個組織關聯。該URL將採用域/ Organization/OrganizationSubCategory的形式。用戶按照自己的自定義網址查看着陸頁。接下來,他們被引導到收集一些人口統計信息的頁面,然後他們點擊接下來進入應用程序。當他們這樣做時,用戶將被添加(如果有必要)到我們數據庫中的組織中。在初始着陸頁之後,路由不再適用 - 用戶被定向到常規的aspx頁面。

該網站正在接收大量用戶進入該應用程序;平均每天850。

問題是少數用戶(少於1%)被添加到錯誤的組織中。

我們在登錄頁面上以及他們提交人口統計頁面時記錄信息。我們記錄的一件事是Request.RawUrl。我們開始注意到與正在登錄的一個組織關聯的用戶請求了另一個組織的完整正確URL(包括子類別)。有時甚至在同一天沒有人合法地追蹤錯誤的組織網址。我們讓人們直接報告他們剛剛創建了「子類別」(使用管理應用程序),指示用戶遵循其唯一的URL,但日誌顯示該用戶的完全不同的URL(我知道這是因爲我正在記錄電子郵件地址和會話ID,所以我可以通過登錄頁面和人口統計頁面關聯相同用戶的路徑)。就好像IIS有時會創建一個新會話一樣,只需將一些先前請求的URL分配給該用戶即可。

在試圖消除某種緩存,我們有:

  • 設置配置httpRuntime元素的enableKernelOutputCache屬性設置爲false
  • 禁用緩存在IIS設置
  • 設置配置sessionState元素的regenerateExpiredSessionId屬性爲假(即使我們沒有看到會話ID被重用)。

其他建議?

+0

從我的理解來看,你的問題太長了,至少對我來說是無法理解的。 –

回答

0

這些內部用戶是?是否有代理考慮事項?這並不能解釋一個錯誤的網址。你100%肯定用戶被給了網址A,並且他們顯示與URL b?你有目前分配的路由模塊嗎?你確定它沒有被另一個模塊中的規則重寫嗎?

這可能是一個應用程序問題,其'新用戶'電子郵件(爲前)包含錯誤的網址?

+0

沒有內部用戶。代理注意事項:沒有2個組織會共享相同的代理。至於我們確信用戶提交的URL不同於他們指向的URL:幾乎100%。直到我引用的一個例子中,我們完全不相信它:管理員將用戶指向剛創建的URL,並且用戶的Request.RawUrl *完全*不同(可能他們正確構建了不正確的網址爲零)。沒有路由模塊。有些網址是通過電子郵件/報告發送的,但這些網址似乎不是問題所在。 – dudeNumber4

+0

在應用中啓用了任何輸出緩存? –

+0

如果我沒有記錯的話,原始URL並不總是他們所請求的URL。最近我們在這裏發佈了一篇文章。我必須檢查這個 –

0

那麼,我們仍然不完全有信心,但似乎在一個組織中的用戶最有可能在互聯網上搜索到系統中的URL並追蹤這些URL。
我無法解釋我們在原始文章中描述的報告。
當我試圖增強日誌記錄以捕獲預發佈會話創建以確認它時,開始請求事件的日誌記錄在我們的QA環境中工作(與生產相同),但只是平坦不能用於生產。我永遠無法確定爲什麼。