3

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

但是,我需要非常快地回答这个问题,因为我有一个客户由于这个问题而无法经营她的业务。

昨天,我的 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(对象需求,StackCrawlMark&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, Boolean 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[] 参数) +52 PilatesPlusDublin.PilatesPlusDublinws.PilatesPlus.InsertException(String sModuleName, String sException, 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 System.Web.UI.Page.ProcessRequestMain(布尔 includeStagesBeforeAsyncPoint, 布尔 includeStagesAfterAsyncPoint) +7350 System.Web .UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +213 System.Web.UI.Page.ProcessRequest() +86 System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context) +18 System.Web.UI.Page .ProcessRequest(HttpContext 上下文)+49 ASP.maindefault_aspx。ProcessRequest(HttpContext context) +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 设置。

我知道人们讨厌阅读和回答这些类型的问题,但是对于我或我的托管网站需要做些什么来解决这个问题的任何帮助将不胜感激

4

4 回答 4

5

不确定这是否会有所帮助,但我曾经有一个客户遇到过同样类型的问题。他们的虚拟主机公司进行了一些更改,导致他们的网站出现类似的错误。通过在 web.config 的 System.Web 部分中添加以下内容,设法使事情再次正常运行:

<trust level="Full" />

如果这不能解决您的问题并且网络托管在新的一年之前无法解决问题,我会认真考虑更换托管服务提供商。

于 2008-11-06T23:17:57.437 回答
2

就像对可能遇到相同问题的任何人的仅供参考一样 - 我收到了这个确切的错误消息,但由于我没有更改本地机器上的任何设置,所以无法弄清楚出了什么问题。

几分钟后,我意识到我不小心从 Windows Server 2008 上的网络共享打开了该项目。当然权限不正确!真是愚蠢的举动,但如果它对某人有帮助,我愿意被羞辱:)

于 2008-11-06T23:07:26.163 回答
2

我发布这个以防它帮助其他人。在他们将您的提供商托管的现有 ASP.NET 站点移动到另一台服务器之前,请注意。

确保您向他们询问有关网络许可和信任级别的信息。

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

“谢谢您的来信。

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

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

所以他们希望我客户的网站在新年之前一直处于离线状态并失去业务。

于 2008-10-29T22:21:24.687 回答
1

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

于 2008-10-29T05:01:42.353 回答