小编Tom*_*son的帖子

ASP.NET捆绑 - 捆绑文件更改后捆绑包不更新(返回304未修改)

我正在尝试使用ASP.NET MVC 4应用程序进行ASP.NET Bundling.情况是我想制作一个CDN样式的服务,它有JS和CSS文件,您可以从其他类型地址的网站处理:http://www.mycdn.com/scripts/plugin/js,捆绑并缩小所有包含的.js文件.

我对一个文件的bundle配置如下所示:

bundles.Add(new ScriptBundle("~/Scripts/plugin/pluginjs").Include("~/Scripts/plugin/jquery.plugin.js"));
Run Code Online (Sandbox Code Playgroud)

但是,当我这样做时,即使我更改原始js文件后,捆绑包也不会更新.当我刷新浏览器时,我继续获得304 Not Modified,并且不会更新缩小文件的内容.如何更新捆绑包,因为捆绑旧内容是没用的?我尝试了各种方法,但无法找到解决方案.

提前致谢!

asp.net bundle bundling-and-minification asp.net-optimization

69
推荐指数
5
解决办法
5万
查看次数

如何在Visual Studio 2013中使用IIS(而不是Express)进行调试

这可能是一个愚蠢的问题,但我遇到Visual Studio 2013和IIS(而不是Express)的问题,默认情况下Visual Studio调试器使用IIS Express(iisexpress.exe)来调试代码.但我不希望这样,但我想使用我的计算机上安装的IIS(w3wp.exe).

我通过使用Attach to Process ...成功调试IIS,然后选择All Users,然后选择w3wp.exe作为进程.但是每次开始调试时我都需要这样做.有没有办法默认使用IIS?在Visual Studio 2012中,一切运行良好,但在VS 2013中,我找不到默认情况下使用IIS(w3wp.exe)的选项.

我正在调试一个Web站点ASP.NET 4.0.

谢谢你的帮助!

iis visual-studio-2013

28
推荐指数
1
解决办法
4万
查看次数

ASP.NET捆绑和缩小 - 包括已生成的生产包和未开发文件的缩小文件

我想要一些关于ASP.NET MVC Bundling和Minification的专家建议.我的项目脚本文件中包含未经编译的(.js)和缩小版本(.min.js).我已将它们包含在我的脚本包中,如下所示:

bundles.Add(new ScriptBundle("~/bundles/layout").Include(
                    "~/Scripts/jquery-{version}.js",
                    "~/Scripts/lib/errorhandling.js",
                    "~/Scripts/lib/errorhandling.min.js",
                    "~/Scripts/vendor/modernizr.custom.js",
                    "~/Scripts/vendor/modernizr.custom.min.js",
                    "~/Scripts/toastr.js",
                    "~/Scripts/toastr.min.js"));
Run Code Online (Sandbox Code Playgroud)

似乎捆绑包确实只包含一次每个脚本文件,而不是两次.我已经确认了这一点,无论是开发还是生产.(作为旁注,在开发中,也就是说,当debug = true时,不会渲染包,但是文件作为单独的脚本标记包含在内.这也是我想要的行为.)

我的问题是:

(1)这是最好的和推荐的方法,包括用于生产设置的已缩小文件和用于开发的未分类文件?

(2)ASP.NET是否试图在生产中缩小整个捆绑包(即使它已经缩小)?如果是,阻止ASP.NET尝试缩小捆绑包的最佳方法是什么?

提前致谢!

asp.net asp.net-mvc asp.net-mvc-4 bundling-and-minification

13
推荐指数
2
解决办法
9903
查看次数

如何设置特定于ASP.NET请求的log4net上下文属性?

我一直在使用log4net来记录我们的ASP.NET网站的日志消息,最近我想添加有关错误发生的页面/处理程序的信息.因此我决定将以下行添加到Global.asax:

void Application_BeginRequest(object sender, EventArgs e)
{
    log4net.ThreadContext.Properties["page"] = HttpContext.Current.Request.AppRelativeCurrentExecutionFilePath;
}
Run Code Online (Sandbox Code Playgroud)

我明智地加入%property{page}了我的转换模式:

<conversionPattern value="%newline%date %-5level %property{page} - %message%newline%newline%newline" />
Run Code Online (Sandbox Code Playgroud)

这适用于单个请求.但后来我在日志中注意到,在ASP.NET请求期间,页面属性可能会发生变化.我已经登录了一个ASHX处理程序,并且在其处理过程中,页面属性将更改为指向ASPX页面的不同值.我得出结论,有另一个请求进入ASP.NET并且它BeginRequest被执行并且静态页面属性log4net.ThreadContext被更改为另一个值.

现在,我想维护每个请求的页面属性,以便我可以将执行页面的路径一致地记录到日志中.我试图找到答案,但我一无所获.解决此问题的推荐方法是什么?我确信这是Web服务器事件记录的非常基本的功能.

asp.net log4net properties httpcontext

10
推荐指数
1
解决办法
9532
查看次数

带有IE11的ASP.NET WebForms 4.0站点不会在Windows Server 2003上为PageRequestManager加载ScriptResource

我遇到了在Windows Server 2003上运行的IE11和ASP.NET Web窗体(.NET 4.0)的问题.在IE11上,以下脚本标记未出现在源HTML中:

<script src="/ScriptResource.axd?d=WYhXIHdkh3HFOMewc5Dscl74H0FlrdD4oOAIu08capt3uxzykhWmBntlCyp0ApmvoCoZjoSCP5s1mUjzhOe99tXFvkHJ2vmkIMEuekr4y9dZdi8--YB4rXK6XO-b-mgnKReGNiAy9wDYm6lNNWWtBg2&amp;t=ffffffffbd2983fc" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)

随后IE11报道:

Unable to get property 'PageRequestManager' of undefined or null reference
Run Code Online (Sandbox Code Playgroud)

它适用于所有其他浏览器.

我想这与浏览器定义有关.任何人都知道如何解决这个问题?

更新:

该网站使用Windows 7和Visual Studio 2013以及.NET 4.5.1在我的本地计算机上运行.

您无法在Windows Server 2003上安装.NET 4.5或4.5.1,因此我们无法使用这些软件包更新服务器,但我们必须使用.NET 4.0.

此外,似乎服务器将浏览器识别为低级浏览器,因为"Auto"上的会话cookie支持将模式设置为"cookieless",因此cookie被写为URL的一部分.

希望这些信息能帮助我们解决问题.

谢谢!

asp.net iis webforms windows-server-2003 internet-explorer-11

3
推荐指数
1
解决办法
8430
查看次数