ASP.NET MVC 5 解决方案在 VS2013 中有效,但在 VS2015 中无效

Posted

技术标签:

【中文标题】ASP.NET MVC 5 解决方案在 VS2013 中有效,但在 VS2015 中无效【英文标题】:ASP.NET MVC 5 solution working in VS2013 but not in VS2015 【发布时间】:2017-06-25 20:02:20 【问题描述】:

我有一个在 Visual Studio 2013 中开发的 ASP.NET MVC 5 应用程序。当我在 IDE 中运行解决方案时,一切正常。在测试和生产服务器上一切正常。

现在,当我在 Visual Studio 2015 的同一台机器上运行完全相同的解决方案时,它不会加载 css 和 javascript 文件。在浏览器中调试显示,使用 VS 2013 对静态资源的 GET 请求是成功的,并获得 200 OK。使用 VS2015,我收到 500 内部服务器错误。

我在 Visual Studio 中运行解决方案时使用的是 IIS Express。

示例:请求 jquery.validate.js:

Screenshot when using VS 2013

Screenshot when using VS 2015

编辑:

我认为问题不在于代码,因为它在 VS2013 和服务器上都有效。但这里有一些代码:

有些脚本是通过捆绑实现的:

BundleConfig:

bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
                    "~/Scripts/jquery.validate*"));

在布局视图中:

@Scripts.Render("~/bundles/jqueryval")

其他脚本直接在视图上实现:

<script src="~/Scripts/vendor/modernizr-2.8.3-respond-1.4.2.min.js"></script>

与 CSS 相同:

<link href="~/Content/style.css" rel="stylesheet">

同样,它在 VS2013 和部署服务器上都运行良好,但在 VS2015 中却不行。

有人有想法吗?

【问题讨论】:

你能添加一些代码更好地理解吗? @Massimo:添加了一些代码 当您单击该留置权项时,有关网络选项卡中可用错误的更多信息? 【参考方案1】:

我终于找到了解决问题的方法。

进一步检查 chrome 调试器中的网络选项卡信息,发现错误消息“无法添加具有唯一键属性 'fileExtension' 的类型为 'mimeMap' 的重复集合条目”。

我在我的 web.config 文件中发现了一个导致此错误的条目:

<staticContent>
  <mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />
</staticContent>

This page 向我展示了解决方案。

我将 web.config 更改为:

<staticContent>
  <remove fileExtension=".woff2" />
  <mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />
</staticContent>

成功了。我的网站现在在 VS2015 中运行良好。

【讨论】:

以上是关于ASP.NET MVC 5 解决方案在 VS2013 中有效,但在 VS2015 中无效的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET MVC 4.0 升级到 5.0遇到的问题及解决思路

在VS2010 ASP.NET开发服务器上运行新的MVC3解决方案;会员数据库在哪里?

《ASP.NET MVC 5 破境之道》:第一境 ASP.Net MVC5项目初探 — 第二节:MVC5项目结构

源码的说明 ASP.NET MVC 5框架揭秘.zip

Asp.Net MVC EF各版本区别

学习总结(ASP.NET MVC 5)