我对编程和ASP.NET MVC都很陌生。
我正在尝试在我的共享Windows服务器上发布一个基本的MVC项目(Hostgator。我有windows个人计划http://www.hostgator.com/windows-hosting)
服务器的信任级别应设置为medium(仅适用于专用服务器)
但是当我为我的action方法创建一个视图返回时,并将代码更改为" return View();"应用程序停止工作,我收到错误消息:
描述:应用程序尝试执行安全策略不允许的操作。要授予此应用程序所需的权限,请与您的系统管理员联系或更改配置文件中的应用程序的信任级别。 异常详细信息:System.Security.SecurityException:请求类型为' System.Security.Permissions.SecurityPermission,mscorlib,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'失败。
来源错误:
Line 4: <meta charset="utf-8" /> Line 5: <meta name="viewport" content="width=device-width, initial-scale=1.0"> Line 6: <title>@ViewBag.Title - My ASP.NET Application</title> Line 7: <link href="~/Content/Site.css" rel="stylesheet" type="text/css" /> Line 8: <link href="~/Content/bootstrap.min.css" rel="stylesheet" type="text/css" />
默认情况下,MVC应用程序是否需要信任级别=&#34;完整&#34; ?或者我能在这里做些什么吗?请用简单的语言解释。
总而言之,这些是工作版和非工作版。当我介绍返回View()时,事情开始变得很糟糕。
工作版:
// Controller
public class HomeController : Controller
{
public string Index()
{
return "this is working";
}
}
// View
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
不工作版本:
// Controller
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
}
// View
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
答案 0 :(得分:3)
在web.config
:
<system.web>
<trust level="Full"/>
</system.web>
答案 1 :(得分:1)
您添加了return View()
链接到项目文件夹中的Views \ Home \ Index.cshtml。如果缺少此文件,您的应用程序将生成错误。
答案 2 :(得分:1)
以下是asp.net团队的回复。这是一个众所周知的问题。考虑到以下情况,我认为您需要与托管服务提供商联系。
我们认为此问题是在应用程序在Partial Trust中运行时引起的,而不是完全信任。仅在完全信任中支持在.NET 4.5上运行的ASP.NET应用程序。您可能需要与托管公司联系,以确保在信任级别方面为ASP.NET 4.5正确配置其服务器。
当我们降低信任级别时,我们能够重现此问题,一旦我们将信任级别设置回完全信任,我们就没有看到任何问题。
谢谢, ASP.NET团队