我有一個偉大和重要的問題與Web.Config,我需要看到我的網頁的錯誤和解決它在asp.net web窗體和web配置,但是當錯誤發生時,我看到另一個錯誤,我看到這條消息:Web.config自定義錯誤模式衝突
的customErrors模式設置爲關或開或僅限遠程,
我設置該屬性關閉,但不顯示錯誤,並說請重新設置屬性在您的CustomError。
當我設置模式爲ON,說請重新設置的customErrors模式爲開。
我有一個偉大和重要的問題與Web.Config,我需要看到我的網頁的錯誤和解決它在asp.net web窗體和web配置,但是當錯誤發生時,我看到另一個錯誤,我看到這條消息:Web.config自定義錯誤模式衝突
的customErrors模式設置爲關或開或僅限遠程,
我設置該屬性關閉,但不顯示錯誤,並說請重新設置屬性在您的CustomError。
當我設置模式爲ON,說請重新設置的customErrors模式爲開。
當您遇到配置問題時,請確保您的 設置未被覆蓋。
在這種情況下,您的服務器可能有一個配置<deployment retail="true" />
重寫應用程序設置和禁用跟蹤輸出,自定義錯誤和調試功能。
值更改爲「假」
<deployment retail="false" />
將模式設置爲開,然後保存在web.config刷新或重新啓動IIS,並確保該模式仍設置爲在保存後。瀏覽一遍,它應該顯示的錯誤...
不幸的是,它不能正常工作 –
關於永遠不會顯示錯誤。只有'關' – Kenneth
確保您嵌套的customErrors標記的地方你<system.web>
標籤內是這樣的:
<system.web>
<customErrors mode="Off" />
</system.web>
從你的描述它已經有可能被放在那裏你或自動生成另一種方式。另請嘗試設置爲「開」並重新啓動應用程序池。您只需修改web.config
文件即可添加中斷返回,甚至只需按空格鍵即可完成此操作。現在重新上傳,確保這是您第二次將customErrors模式設置爲開啓。希望您現在可以查看您的自定義錯誤頁面。
如果您仍然遇到問題,並且可以從IIS管理器訪問您的網站,請嘗試編輯「功能」視圖中的.NET錯誤頁面。如果您的自定義錯誤頁面位於要訪問的web.config
文件的正確目錄中,那麼也會執行相同的操作。
不幸的是這不是工作 –
我只是想在這裏發表評論,但我沒有足夠的點評論,我們可以看到實際的,頁產生錯誤,並看到整個web.config?您可以模糊連接字符串等,以避免輸入任何密碼。
但隨着我所看到的,
我想從你說的話,你正在使用本地計算機上的IIS Express進行調試。 我會做IIS Express,或ctrl + F5頁面來查看該網站是否沒有被緩存。
將自定義錯誤設置爲Off將顯示調試消息 - 注意Off中的「O」必須以f的小寫字母大寫。看起來像你有這個,但值得一提
自定義錯誤關 - 指定自定義錯誤被禁用。這允許顯示詳細的錯誤。
我從來沒有見過它說設置爲。我已經看到它說設置customeErrors關閉,這會給你詳細的錯誤。將其設置爲關閉狀態,然後將看到的實際錯誤消息添加到此帖子中。你是否肯定你沒有得到像404錯誤那樣的不同信息?
要顯示調試錯誤和不顯示的自定義錯誤頁,你不需要defaultRedirect
,只是有這應該然後輸出的調試/異常信息:
<system.web>
<customErrors mode="On" />
</system.web>
注:確保On
打頭大寫O。通過更改web.config,應該(默認情況下)回收您的應用程序池並立即獲取。
以下是您可以如何在自定義頁面上顯示例外的示例代碼。
首先創建的Default.aspx與按鈕:
的按鈕單擊事件<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Throw Error" />
添加以下代碼:
protected void Button1_Click(object sender, EventArgs e)
{
throw new Exception("Sample Exception on my Page");
}
第二,標籤創建ErrorPage.aspx:
<asp:Label ID="Label1" runat="server" Text=""></asp:Label>
而且錯誤代碼頁:
protected void Page_Load(object sender, EventArgs e)
{
Exception ex = Server.GetLastError();
if (ex != null && ex.InnerException != null)
{
Label1.Text = string.Format("An error occured: {0}", ex.InnerException.Message);
}
}
最後把下面的配置在web.config中:
<system.web> <customErrors mode="On" defaultRedirect="~/ErrorPage.aspx" redirectMode="ResponseRewrite" /> </system.web>
編譯和Default.aspx的開始。點擊您的按鈕,錯誤將顯示在您的自定義頁面上。
快樂編碼!
從我所看到的,您沒有<customErrors mode="Off" />
作爲<system.web>
節點中的第一個節點。
如果我猜測,您在<compilation targetFramework="x.x">
節點中有customErrors節點。
你可能有applicationpool設置爲編寫應用程序在.NET框架的另一個版本。確保<customErrors mode="Off" />
節點是<system.web>
節點中的第一個,那麼它很可能給你詳細的ErrorMessage。
刪除這一行對我的作品!
<customError />
不幸的是,它不能正常工作 –
許多託管公司實際上都覆蓋了他們的web.config文件中的設置。您通常可以在網站的虛擬主機儀表板中設置這些具體屬性。
如果你告訴我們託管您使用的是具體的網絡,我們應該能夠與具體步驟,以幫助更好。
首先,你可以從「僅限遠程」設置的customErrors模式設置爲「關閉」 <customErrors mode="Off"></customErrors>
其次,您可以檢查您創建的Response.Redirect爲相同的defaultRedirect中customError的global.asax.maybe。你可以在這裏查看更多詳細信息ASP.NET customErrors with mode=remoteOnly and global.asax handling exceptions
和最後一個,也許你在你的webconfig中創建了兩個 system.web。你應該只在你的配置文件中有一個。請再次檢查你的webconfig。 不要忘記<compilation debug="true"/>
自定義錯誤就意味着你正在創建自己的頁面錯誤。像404找不到文件等等。當你將它設置爲關閉時顯示錯誤的每一個。而如果是遠程才從同一臺機器可以看到的唯一錯誤 –
你扔你的錯誤。或者你已經在你的全局文件Application_Error方法中寫了一些東西? –
感謝您的評論,我知道但我希望看到錯誤調試它,並且不顯示錯誤 –