ASP.NET WebPermission安全性例外




system.security (3)

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

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

但是,我很快就需要回答这个问题,因为我有一个客户因为这个问题而无法经营业务。

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

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

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

[SecurityException:对'System.Net.WebPermission,System,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'类型权限的请求失败。] System.Security.CodeAccessSecurityEngine.Check(Object demand,StackCrawlMark&stackMark,Boolean + 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 uri)+30 System.Web.Services.Protocols.HttpWebClientProtocol .GetWebRequest(Uri uri)+12 System.Web.Services.Protocols.SoapHttpClientProtocol.GetWebRequest(Uri uri)+4 System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName,Object [] parameters)+52 PilatesPlusDublin.PilatesPlusDublinws .PilatesPlus.InsertException(String sModuleName,String s 例外,Int32 iUserID)+97 PilatesPlusDublin.MainDefault.Page_Load(Object sender,EventArgs e)+144 System.Web.UI.Control.OnLoad(EventArgs e)+99 System.Web.UI.Control.LoadRecursive()+47系统.Web.UI.Page.ProcessRequestMain(布尔includeStagesBeforeAsyncPoint,布尔includeStagesAfterAsyncPoint)+7350 System.Web.UI.Page.ProcessRequest(布尔includeStagesBeforeAsyncPoint,布尔includeStagesAfterAsyncPoint)+213 System.Web.UI.Page.ProcessRequest()+86系统。 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 .IExecutionStep.Execute()+358 System.Web.HttpApplication.ExecuteStep(IExecutionStep step,Boolean&completedSynchronously)+64“

如果WebPermission在托管站点不可用,如何配置我的站点以允许访问该页面? 是否有一些标签需要放在web.config中? 请注意 - 我们无法访问machine.config或任何其他IIS设置。

我明白,人们讨厌阅读和回答这些类型的问题,但我或我的托管网站需要做的任何帮助来解决这个问题将非常感激


不知道这是否会有帮助,但我曾经有一个客户与同类型的问题。 他们的虚拟主机公司做了一些改变,导致他们的网站抛出类似的错误。 通过在web.config中的System.Web部分内添加以下内容来管理重新开始工作:

<trust level="Full" />

如果这不能解决你的问题,并且网络主机不能解决他们的问题直到新的一年,我会认真考虑切换托管服务提供商。


我张贴这个,以防其他人帮助。 在将由您的提供商托管的现有ASP.NET网站移至其他服务器之前,请提醒您。

请确保您询问了关于WEBPERMISSIONS和TRUST LEVELS的信息。

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

“谢谢您的来信。

这是因为WebPermission在中等信任环境中不可用而失败。

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

所以他们希望我的客户的网站在新的一年之前下线并失去业务。





system.security