2010-10-29 87 views
1

警告:我意識到這可能是一個服務器的配置問題,但我認爲有可能是一個綱領性的回答,這就是爲什麼我在這裏發帖...IIS7上的FastCGI ...來自同一用戶會話的多個併發請求?

在Apache上運行PHP,我們的用戶能夠發出多個併發請求(例如,來自同一瀏覽器中的不同標籤)。

由於在IIS下移動到FastCGI,這不再是默認行爲。現在,當用戶啓動對服務器的請求並且瀏覽器正在等待響應時,如果他們打開新選項卡並啓動另一個請求,則在IIS完成上一個請求之前,不會由IIS處理新請求。

如果用戶打開不同的瀏覽器並登錄(爲該用戶啓動一個新會話),則可能發出併發請求。

我的問題是:有沒有辦法配置FastCGI/IIS7,將允許來自同一用戶會話的多個併發請求?如果沒有,是否有替代方案可以解決這個問題?

回答

3

問題在於會話機制,很可能。默認情況下,因爲PHP會話正在使用文件系統,所以必須等待會話文件關閉後再打開它們。因此,對於同一個會話的後續請求等待先前的請求,或者除了你的另外一個例子,如果你有一個框架頁面(shudder)有三個框架,每個框架都引用了會話,它們都會加載一個時間,因爲每個頁面都必須等待會話機制。

可能的解決方案:

  • 只要你用會話完成的,撥打session_write_close()
  • 實現自定義數據庫處理程序,它利用數據庫,而不是文件系統。
+0

謝謝您的回答,但沒有說明爲什麼它的工作的Apache和IIS上不起作用? (腳本沒有改變) – 2010-11-01 17:28:44

相關問題