我們正在運行在IIS7上運行的EPiServer(CMS5 R2,最新版本)和ASP.NET 3.5中構建的站點,我們構建了一個自定義錯誤處理程序,該程序利用URLRewriter EPiServer的功能來處理404和301狀態碼,一切工作在本地(Windows 7 + IIS7.5),但我們無法讓404頁面在實時服務器上運行(Windows 2008 Server + IIS7)。 301重定向能夠工作,但對於404頁,我們剛剛得到的默認IIS7消息:獲取自定義錯誤以顯示在IIS7上的問題
iis7 default 404 message http://episerversucks.com/upload/iis7_error.png
處理程序顯然是得到,因爲預先定義的301重定向工作(網址從舊站點發射了我們需要重定向到新的站點),但是對於IIS7而言,IIS7只是將它們替換爲默認消息。
的404處理器工作在這樣的方式是做一個內部重定向到一個頁面/Pages/Error404.aspx以適當語言顯示一個漂亮的自定義404頁,並將它自己的狀態碼404通過Response.StatusCode = 404;
我從一個網站得到的提示將TrySkipIisCustomErrors變量更改爲true,即Response.TrySkipIisCustomErrors = true;
,但這也沒有幫助。
我在本地開發機器和服務器之間發現的唯一配置差異是本地機器有一個名爲「.NET Error Pages」的配置設置和一個名爲「Error Pages」的設置,而活服務器只有具有名爲「錯誤頁面」的設置,並且缺少.NET錯誤頁面,但我找不到將服務器添加.NET錯誤頁面配置對話框的方法,是否爲IIS7.5具體?
我一直在挖掘我的方式通過這一天的好一段時間,只是找不到解決方案,似乎工作,所以我轉過來。
編輯:的本地開發版和真人版具有相同的web.config中的,設置等(除數據庫連接字符串明顯)