【问题标题】:Visual Studio 2013 Web Forms Site doesn't work with trust level "Medium"Visual Studio 2013 Web 窗体站点不适用于信任级别“中”
【发布时间】:2014-03-23 06:31:04
【问题描述】:

我使用 Visual Studio 2013 创建了一个 asp.net Web Forms 站点。脚本和页面由 VS 2013 自动生成。问题是该网站不适用于 .Net 信任级别“Medium”。它需要“完整”级别。

对于“中等”级别,它会引发错误:

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

 [SecurityException: Request for the permission of type 'System.Security.Permissions.ReflectionPermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.]
System.Delegate.DelegateConstruct(Object target, IntPtr slot) +0
Owin.Loader.DefaultLoader..ctor(Func`3 next, Func`2 activator, IEnumerable`1 referencedAssemblies) +69
Microsoft.Owin.Host.SystemWeb.OwinBuilder.GetAppStartup() +65
Microsoft.Owin.Host.SystemWeb.OwinHttpModule.InitializeBlueprint() +28
System.Threading.LazyInitializer.EnsureInitializedCore(T& target, Boolean& initialized, Object& syncLock, Func`1 valueFactory) +115 

Microsoft.Owin.Host.SystemWeb.OwinHttpModule.Init(HttpApplication context) +106
System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +418
System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context) +172
System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +336
System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +296

我了解此问题与 IIS 信任级别有关。

我的问题是

  1. 有没有办法让网站在信任级别“中”下工作。原因是我的主机共享服务器不允许完全信任。

  2. 如何跟踪导致此错误行为的脚本。

提前谢谢你....

【问题讨论】:

    标签: iis-7.5 visual-studio-2013 asp.net-4.5


    【解决方案1】:

    Medium Trust 已死。我们(ASP.NET 团队)今后不再支持它:我们最近的框架,如 SignalR、MVC 5、Web API 2、友好 URL 和 Katana 堆栈都要求使用完全信任。请参阅https://stackoverflow.com/a/17218344/59641 了解更多信息。

    您有几个选择:

    • 联系您的主机并要求他们将您的网站移至完全信任。 KB2698981 为托管商提供指导,告诉他们应该摆脱 ASP.NET 的部分信任模式,并使用操作系统提供的适当隔离级别以完全信任模式运行所有内容。

    • 移至其他不限制您使用中等信任的托管服务商。

    • 如果您必须使用现有的托管商并且他们不会将您转移到完全信任,请使用旧版本的 ASP.NET 项目模板(文件 -> 新建 -> 项目 -> Visual C# -> Web - > Visual Studio 2012 -> {选择应用程序类型})。或者,您可以从空的 ASP.NET 项目模板开始。这些模板不需要完全信任。但是,请注意,您将限制站点可用的功能,并且您将无法安装 ASP.NET 团队提供的最新 NuGet 包。

    【讨论】:

    • 感谢@Levi 的回复。
    猜你喜欢
    • 2013-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多