2013-11-28 66 views
0

我正嘗試在SharePoint網站中設置自定義錯誤處理。 但我不知道這是如何工作的。爲什麼我的錯誤沒有在SharePoint中顯示

因此,我設置了一個裸露的骨骼SharePoint項目,只有一個Event Receiver用於播放公告列表。

On itemAdded for an Announcement type list,I just append some text to the title and see it happen。現在,我嘗試添加:

throw new Exception("There was a problem with the operation with the operation.") 

或 拋出新SpException(「有與該動作的操作有問題。」)

所以當我調試,並在 HTTP連接到站點: // [exampleMachineName]/Dev1 siteCollection,

轉到公告列表並添加一個listItem,調試器停止在引發異常的違規行。

現在,當我點擊F11或綠色箭頭(繼續)時,我希望看到黃色屏幕顯示我的錯誤消息或SharePoint的默認錯誤屏幕。

但我沒有看到它,它只是繼續,並在通知列表中顯示我的新列表項。

在自定義ASP.Net Web窗體或MVC中,我會看到黃色屏幕或HTTP 500或其他東西。 這裏引擎蓋下面發生了什麼,以及如何複製死亡情況的黃色屏幕,就像我試圖在我們的實際應用中解決的那樣。

回答

0

這是因爲您創建的事件接收類型 - ItemAdded是異步事件接收器,因此它在項目已添加到列表後觸發,並且如果在此接收器中出現一些未處理的錯誤,則不會在您的http頁面發生錯誤它雖然在ULS日誌中寫入錯誤消息。 嘗試使用ItemAdding事件接收器。

+0

噢 - 謝謝,這很有效。 現在我得到一個彈出式錯誤對話框,其中包含來自SPexception I的消息文本。 所以現在我想知道爲什麼我玩的項目是這樣做的,但我們真正的應用程序給出了黃色的屏幕。這可能是自定義錯誤設置的地方。他們能否解決這個問題? – Sam

+0

是的,它絕對是在web配置中設置的自定義錯誤部分,請查看http://msdn.microsoft.com/en-us/library/vstudio/ee231550.aspx。你需要設置customErrors mode =「On」。 –

+0

另外不要忘記更改web.config後執行issreset。 –

相關問題