gpt4 book ai didi

64 位 IIS 7.5 服务器上的 ASP.NET/MVC 4 捆绑和缩小 404 问题

转载 作者:行者123 更新时间:2023-12-02 16:04:18 24 4
gpt4 key购买 nike

我们最近将项目从 MVC 3 升级到 MVC 4。我们的目标是 .NET 4.0 框架,并且由于我们必须包含一些引用,我们的 Web 应用程序是 32 位的。

我们遇到的问题是我们将捆绑/缩小从 Chirpy 转换为内置 ASP.NET 捆绑。该站点在 32 位服务器(仅运行 .NET 4.0 的 Windows Server 2003/IIS 6 和 2008/IIS 7.5)以及我们的 64 位开发计算机上运行没有任何问题。捆绑/缩小在上述所有方面都可以正常工作。

在仅安装 .NET 4.0 的 64 位 Windows 2008/IIS 7.5 服务器上,捆绑不起作用。生成的脚本和样式均出现 404 错误。

如果我们在 64 位服务器上安装 .NET 4.5,它就可以正常工作。我们对此感到困惑,因为有些服务器无需 .NET 4.5 即可工作,而这台服务器需要它。最重要的是,Windows Server 2003/64 位与 .NET 4.5 不兼容,因此如果也存在问题,此修复将不起作用。

奇怪的是,针对 .NET 4.0 构建的 x86 的示例 MVC 4 示例互联网应用程序在问题服务器上仅使用 4.0 即可正常工作。除了 unity、logging、elmah 和 dot less 配置外,web.config 完全相同。

任何有关此问题的帮助将不胜感激。

这是 BundleConfig.cs:

using System.Web;
using System.Web.Optimization;

namespace WebApp
{
public class BundleConfig
{
public static void RegisterBundles(BundleCollection bundles)
{
bundles.UseCdn = false;

// .debug.js, -vsdoc.js and .intellisense.js files
// are in BundleTable.Bundles.IgnoreList by default.
// Clear out the list and add back the ones we want to ignore.
// Don't add back .debug.js.
bundles.IgnoreList.Clear();
bundles.IgnoreList.Ignore("*-vsdoc.js");
bundles.IgnoreList.Ignore("*intellisense.js");

bundles.Add((new ScriptBundle("~/bundles/WebApp.Register1")).Include("~/Scripts/jquery.ba-tinypubsub.min.js",
"~/Scripts/knockout-2.1.0.js",
"~/Scripts/WebApp/WebApp.Register.RegisterStudent.js",
"~/Scripts/WebApp/WebApp.Register.RegisterPresenter.js"));

bundles.Add((new Bundle("~/bundles/WebApp.Register2")).Include("~/Scripts/WebApp/WebApp.Register.StudentSelect.js"));


bundles.Add((new ScriptBundle("~/bundles/WebApp.View1")).Include("~/Scripts/jquery.ba-tinypubsub.min.js",
"~/Scripts/WebApp/WebApp.View.ImagePresenter.js",
"~/Scripts/WebApp/WebApp.View.ImageResults.js"));

bundles.Add((new Bundle("~/bundles/WebApp.View2")).Include("~/Scripts/WebApp/WebApp.View.StudentsSelect.js"));

bundles.Add((new ScriptBundle("~/bundles/WebApp.Print1")).Include("~/Scripts/WebApp/WebApp.Print.SelectedIdArray.js",
"~/Scripts/jquery.ba-tinypubsub.min.js",
"~/Scripts/WebApp/WebApp.Print.DocumentsSelect.js",
"~/Scripts/WebApp/WebApp.Print.DocumentsSelected.js",
"~/Scripts/WebApp/WebApp.Print.DocumentsPresenter.js",
"~/Scripts/WebApp/WebApp.Print.StudentsPresenter.js",
"~/Scripts/WebApp/WebApp.Print.PrinterSelected.js",
"~/Scripts/WebApp/WebApp.Print.OutputSummary.js",
"~/Scripts/WebApp/WebApp.Print.OutputPresenter.js",
"~/Scripts/WebApp/WebApp.Print.NoStudentPresenter.js"));

bundles.Add((new Bundle("~/bundles/WebApp.Print2")).Include("~/Scripts/WebApp/WebApp.Print.StudentsSelect.js",
"~/Scripts/WebApp/WebApp.Print.StudentsSelected.js"));

bundles.Add((new ScriptBundle("~/bundles/WebApp.Main")).Include("~/Scripts/modernizr.custom.33607.js",
"~/Scripts/jquery-1.6.1.js",
"~/Scripts/jquery-ui-1.8.10.custom.min.js",
"~/Scripts/jquery-ui.min.js",
"~/Scripts/json.js",
"~/Scripts/jquery.validate.min.js",
"~/Scripts/jquery.marquee.js",
"~/Scripts/YUI.js",
"~/Scripts/Common.SearchHighlight.js"));

bundles.Add((new StyleBundle("~/bundles/Content/WebApp.Main")).Include("~/Content/jquery.marquee.min.css",
"~/Content/YUI.css",
"~/Content/Site.css",
"~/Content/ui-lightness/jquery-ui-1.8.10.custom.css"));
}
}
}

以下是我们在布局中引用 bundle 的方式:

    @Scripts.Render("~/bundles/WebApp.Main")
<link href="@Url.Content("~/Content/SiteLess.less")" rel="stylesheet" type="text/css" />
@Styles.Render("~/bundles/Content/WebApp.Main")
...

编辑:回复/更新

最佳答案

您最初遇到 404 问题的环境可能没有应用无扩展名 URL 修补程序。

参见http://support.microsoft.com/kb/980368

巧合的是,您安装的“干净的 .NET 4.0”版本要么高于 4.0(也许是 4.5?),要么您可能无意中应用了修补程序/更新以启用对无扩展 URL 的支持。

我在 Windows Server 2008 机器(企业版;32 位和 64 位)中遇到了同样的问题,其中 bundler 在运行时没有失败(它正确创建 bundle ,并正确呈现 bundle URL,如 /app/bundles/my_script),但 IIS 为 bundle URL 返回 404。我安装了修补程序 980368 并且 bundle 开始工作。

关于64 位 IIS 7.5 服务器上的 ASP.NET/MVC 4 捆绑和缩小 404 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15014169/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com