0

我的web應用程序提出了一個非常奇怪的錯誤:asp.Net後回到安全錯誤

Server Error in '/' Application. 
    -------------------------------------------------------------------------------- 

    Security Exception 
    Description: The application attempted to perform an operation not allowed by the security policy. To grant this application the required permission please contact your system administrator or change the application's trust level in the configuration file. 

    Exception Details: System.Security.SecurityException: Request failed. 

    Source Error: 


    [No relevant source lines] 


    Source File: c:\windows\Microsoft.NET\Framework\v4.0.21006\Temporary ASP.NET Files\root\9d105d0f\5a29f9f\App_Web_w324g3dv.1.cs Line: 0 

    Stack Trace: 

[SecurityException: Request failed.] 

    AjaxControlToolkit.HTMLEditor.EditPanel.set_ActiveMode(ActiveModeType value) in C:\Users\Machta\Documents\Visual Studio 10\Projects\AjaxControlToolkit_9c860ac12ae9\Server\AjaxControlToolkit\HTMLEditor\EditPanel.cs:400 
    AjaxControlToolkit.HTMLEditor.EditPanel.LoadPostData(String postDataKey, NameValueCollection postCollection) in C:\Users\Machta\Documents\Visual Studio 10\Projects\AjaxControlToolkit_9c860ac12ae9\Server\AjaxControlToolkit\HTMLEditor\EditPanel.cs:142 
    AjaxControlToolkit.ScriptControlBase.System.Web.UI.IPostBackDataHandler.LoadPostData(String postDataKey, NameValueCollection postCollection) in C:\Users\Machta\Documents\Visual Studio 10\Projects\AjaxControlToolkit_9c860ac12ae9\Server\AjaxControlToolkit\ExtenderBase\ScriptControlBase.cs:426 
    System.Web.UI.Page.ProcessPostData(NameValueCollection postData, Boolean fBeforeLoad) +8766531 

... 

它發生,只有當我發佈在服務器上(這是罰款,只要它是一個安全例外)。

奇怪的是,應用程序需要訪問應該位於計算機文件夾中的文件的權限。但是這個文件夾在我的電腦上不存在。當我重新安裝Visual Studio時,我也將項目移動到了不同的文件夾(具有相似的名稱,但它仍然是一個不同的文件夾)。

所以我的問題是:

  1. 爲什麼應用程序需要的文件在我的電腦上時,其在服務器上?
  2. 爲什麼它在我的電腦上工作時,文件不應該在這裏嗎?
  3. 可能的原因和解決方案是什麼?

您可以在這裏試試:http://machta.aspone.cz/editor/webConntentEditor.aspx。 用戶名:machta密碼:123456

我還應該補充說,這個錯誤出現在每次回發後,但頁面加載正常。

回答

2

默認情況下,服務器的信任級別可能會降低。
嘗試以下行添加到您的web.config

<system.web> 
    <trust level="Full" /> 
</system.web> 

Source

+0

感謝幫助的人。現在它可以工作。有趣的是,像這樣的小事情可以如此重要... – Machta 2010-12-17 13:30:08

+0

感謝您幫助一個令人沮喪的錯誤:) – 2013-04-16 13:59:04

0

首先,它不要求您的計算機上的文件。它只是告訴你已編譯的文件的名稱(和位置)以及失敗的相關代碼行。

PDB在應用程序編譯時存儲這些信息,這就是爲什麼參考是在硬盤上的位置。

如果該引用的位置不再有效,那麼您聽起來好像您沒有將整個應用程序部署到服務器上,因爲您移動了本地源。

所有這些說,線400或您的EditPanel做什麼?如果它試圖將文件寫入到Web服務器上的某個位置,那麼您需要確保該應用程序正在執行的用戶已經執行了寫操作。提示:查看應用程序池設置。