代码之家  ›  专栏  ›  技术社区  ›  Skittles

ASP.NET WebPermission安全异常

  •  3
  • Skittles  · 技术社区  · 17 年前

    我通常不喜欢发布这些类型的问题,因为我发现真正学习的最好方法是自己找出答案。

    然而,我需要一个问题的答案真的很快,因为我有一个客户谁不能经营她的业务,因为这个问题。

    昨天,我的ASP.NET主机提供程序将我的应用程序从运行.NET 1.1的服务器移动到运行.NET 1.1和2.0的服务器。我的问题是,当我测试移动时,主站点页面(Default.aspx)将不会加载

    “描述:应用程序试图执行安全策略不允许的操作。若要授予此应用程序所需的权限,请与系统管理员联系或更改配置文件中应用程序的信任级别。

    异常详细信息:System.Security.Security Exception:请求“System.Net.WebPermission,System,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089”类型的权限失败。“

    [安全异常:请求'System.Net.WebPermission,System,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089'类型的权限失败。] System.Security.CodeAccessSecurityEngine.Check(对象请求,stackcrwlmark&stackMark,布尔isPermSet)+0 System.Security.CodeAccessPermission.Demand()+59 System.Net.HttpWebRequest..ctor(Uri Uri,ServicePoint ServicePoint)+147 System.Net.HttpRequestCreator.Create(Uri Uri)+26 System.Net.WebRequest.Create(Uri requestUri,布尔useUriBase)+298 System.Net.WebRequest.Create(Uri requestUri)+28 System.Web.Services.Protocols.WebClientProtocol.GetWebRequest(Uri)+30 System.Web.Services.Protocols.HttpWebClientProtocol.GetWebRequest(Uri Uri)+12 System.Web.Services.Protocols.SoapHttpClientProtocol.GetWebRequest(Uri)+4 System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName,Object[]参数)+52 PilatesPlusDublin.PilatesPlusDublinws.PilatesPlus.InsertException(字符串sModuleName,字符串sException,Int32 iUserID)+97 PilatesPlusDublin.main默认值.页面加载(对象发送者,事件参数e)+144 System.Web.UI.Control.OnLoad(事件参数e)+99 System.Web.UI.Control.LoadRecursive()+47 System.Web.UI.Page.ProcessRequestMain(布尔值includeStagesBeforeAsyncPoint,布尔值includeStagesAfterAsyncPoint)+7350 System.Web.UI.Page.ProcessRequest(布尔值includeStagesBeforeAsyncPoint,布尔值includestagesafterasincpoint)+213 System.Web.UI.Page.ProcessRequest()+86 System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext上下文)+18 System.Web.UI.Page.ProcessRequest(HttpContext上下文)+49 ASP.maindefault_aspx.ProcessRequest(HttpContext上下文)+4 System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.ieExecutionStep.Execute()+358 System.Web.HttpApplication.ExecuteStep(IExecutionStep步骤,布尔值同步完成)+64“

    如果宿主站点上没有WebPermission,如何配置我的站点以允许访问该页?是否有一些标记需要放入web.config中?注意-我们无权访问machine.config或任何其他IIS设置。

    我知道人们不喜欢阅读和回答这些问题,但是如果我或我的主机站点需要帮助解决这些问题,我将不胜感激

    4 回复  |  直到 17 年前
        1
  •  5
  •   Mun    17 年前

    不确定这是否有用,但我曾经有一个客户有同样类型的问题。他们的网站托管公司做了一些改变,导致他们的网站抛出类似的错误。通过在Web.config中的System.Web部分中添加以下内容,成功地使事情再次正常工作:

    <trust level="Full" />
    

    如果这不能解决你的问题,而网络主机在新年前不能解决问题,我会认真考虑更换主机提供商。

        2
  •  2
  •   Mario    17 年前

    作为可能有同样问题的人的参考-我得到了这个确切的错误消息,无法找出什么是错误的,因为我没有改变我的本地框的任何设置。

    几分钟后,我意识到我无意中从WindowsServer2008上的网络共享打开了这个项目。当然权限不对!真是愚蠢的举动,但如果它能帮助我愿意被羞辱的人:)

        3
  •  2
  •   Skittles    17 年前

    我会把这个贴出来,以防对其他人有帮助。在将供应商提供的现有ASP.NET网站移动到另一服务器之前,请先发出警告。

    请确保询问他们有关网络权限和信任级别的信息。

    这是我的供应商回复。。。。

    “谢谢你的邮件。

    它失败,因为WebPermission在中等信任环境中不可用。

    我们目前无法对这些服务器进行任何更改,因为我们计划在今年年底之前将所有站点迁移到一对新的集群上。我确信新的Windows群集将具有可用的WebPermission,因为它已在当前的Namesco Windows群集上启用。“

    所以他们预计我客户的网站会离线,在新年前失去业务。

        4
  •  1
  •   Maxam    17 年前

    您的web应用程序是在调用web服务还是访问外部网站?如果是这样,您可能需要与宿主提供商交谈,并要求将URI添加到允许的连接端点列表中。

    推荐文章