在共享服务器上发布时ASP.NET MVC错误

时间:2014-05-11 15:13:38

标签: c# asp.net asp.net-mvc asp.net-mvc-4

我对编程和ASP.NET MVC都很陌生。

我正在尝试在我的共享Windows服务器上发布一个基本的MVC项目(Hostgator。我有windows个人计划http://www.hostgator.com/windows-hosting

服务器的信任级别应设置为medium(仅适用于专用服务器)

  • 我创建了一个ASP.NET Web应用程序,空MVC项目。
  • 我创建了一个家庭控制器并返回了一个字符串。到目前为止,网页都有效。

但是当我为我的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>

3 个答案:

答案 0 :(得分:3)

web.config

<system.web>
    <trust level="Full"/>
</system.web>

答案 1 :(得分:1)

您添加了return View()链接到项目文件夹中的Views \ Home \ Index.cshtml。如果缺少此文件,您的应用程序将生成错误。

答案 2 :(得分:1)

以下是asp.net团队的回复。这是一个众所周知的问题。考虑到以下情况,我认为您需要与托管服务提供商联系。

https://connect.microsoft.com/VisualStudio/feedback/details/795612/mvc5-template-project-cannot-deploy-to-hosting-service

我们认为此问题是在应用程序在Partial Trust中运行时引起的,而不是完全信任。仅在完全信任中支持在.NET 4.5上运行的ASP.NET应用程序。您可能需要与托管公司联系,以确保在信任级别方面为ASP.NET 4.5正确配置其服务器。

当我们降低信任级别时,我们能够重现此问题,一旦我们将信任级别设置回完全信任,我们就没有看到任何问题。

谢谢, ASP.NET团队