asp.Net发布回安全错误

时间:2010-12-16 18:41:21

标签: asp.net asp.net-ajax ajaxcontroltoolkit securityexception

我的网络应用程序出现了一个非常奇怪的错误:

    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. 可能的原因和解决方案是什么?
  4. 您可以在此处尝试:http://machta.aspone.cz/editor/webConntentEditor.aspx。 用户名:machta密码:123456

    我还应该补充说,每次回发后都会出现此错误,但页面加载正常。

2 个答案:

答案 0 :(得分:2)

默认情况下,您的服务器的信任级别可能会降低。
尝试将以下行添加到您的web.config

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

Source

答案 1 :(得分:0)

首先,它不是在您的计算机上请求文件。它只是告诉你编译的文件(和位置)的名称以及失败的相关代码行。

PDB在编译应用程序时存储此信息,这就是为什么引用是硬盘驱动器上的位置的原因。

如果引用的位置不再有效,那么听起来您没有将整个应用程序部署到服务器,因为您移动了本地源。

所有这些都说,400行或你的EditPanel做了什么?如果它正在尝试将文件写入Web服务器上的某个位置,那么您需要确保应用程序正在执行的用户已写入以执行此操作。提示:查看应用程序池设置。