2012-05-16 32 views
1

在這裏將我的頭靠在牆上。使用PHP解析ASPX頁面FAST CGI無法啓動會話

我正在將IIS 7.5(Windows Web Server Edition)上運行的C#.NET網站從C#.NET轉換爲PHP 5.3.10。一切都完成了,但客戶用於谷歌AdWords帳戶的頁面需要保持不變。您無法重定向Google目標網頁。爲了處理這個問題,我刪除了所有的aspx擴展處理程序,並在所有的* .aspx擴展名中用PHP FastCGI替換。我還將應用程序放置在自己的應用程序池中,以經典模式運行等。

當頁面加載時拋出無法啓動會話警告。 PHP本身工作正常,但該頁面似乎已經傳遞給瀏覽器,不允許PHP啓動會話,設置Cookie或執行標題重定向。

無論如何,這不是我第一次這樣做,所以它應該工作。這也不是一個空白問題。我知道如何開始一個會話等等。當解析這些文件時,IIS正在做一些事情,而且我不太清楚要知道去哪裏看。

提前爲您提供幫助。

在我的智慧結束。

+0

如果添加一個僅包含'<?php session_start();'的php頁面作爲內容,那麼它是否也會失敗?另外,在調用'session_start()'之前,嘗試'var_dump(headers_sent());'。 – chelmertz

+0

var_dump(headers_set());給我bool(true) – Stormflurry

+0

也是這個文件<?php session_start(); ?>作爲test.aspx拋出標準的兩個警告無法設置cookie和無法設置緩存。具有.php擴展名的相同文件設置會話cookie並且不會引發錯誤。另外var_dump(headers_sent());扔假。 – Stormflurry

回答

0

使用URL重寫模塊將.aspx頁的所有請求重寫爲.php會不會容易得多?像這樣:

<rule name="Rewrite ASPX to PHP" enabled="true" stopProcessing="true"> 
    <match url="(.*)\.aspx$" /> 
    <action type="Rewrite" url="/{R:1}.php" appendQueryString="true" /> 
</rule>