我已经从ASP.NET MVC Beta升级到1.0并对MVC项目进行了以下更改(如RC发行说明中所述):
<Project ...>
...
<MvcBuildViews>true</MvcBuildViews>
...
<Target Name="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
<AspNetCompiler VirtualPath="temp" PhysicalPath="$(ProjectDir)\..\$(ProjectName)" />
</Target>
...
</Project>
Run Code Online (Sandbox Code Playgroud)
虽然构建在我们的本地开发盒上运行良好,但它在TFS 2008 Build下"无法加载类型'xxx.MvcApplication'"失败,请参阅下面的构建日志:
...
using "AspNetCompiler" task from assembly "Microsoft.Build.Tasks.v3.5, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
Task "AspNetCompiler"
Command:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_compiler.exe -v temp -p D:\Builds\xxx\Continuous\TeamBuild\Sources\UI\xxx.UI.Dashboard\\..\xxx.UI.Dashboard
The "AspNetCompiler" task is using "aspnet_compiler.exe" from "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_compiler.exe".
Utility to precompile an ASP.NET application
Copyright (C) Microsoft Corporation. All rights reserved.
/temp/global.asax(1): error ASPPARSE: Could not load type 'xxx.UI.Dashboard.MvcApplication'.
The command exited with code 1.
Done executing task "AspNetCompiler" -- FAILED. …Run Code Online (Sandbox Code Playgroud) 我们使用FileStreamResult为基于Silverlight MediaElement的视频播放器提供视频数据:
public ActionResult Preview(Guid id) {
return new FileStreamResult(
Services.AssetStore.GetStream(id, ContentType.Preview),
"application/octet-stream");
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,Silverlight视频播放器在开始播放之前会下载整个视频文件.由于我们的PreviewAction不支持下载部分内容,因此会出现此行为.
(旁注:如果文件托管在IIS虚拟目录中,我们可以在视频中的任何位置继续播放,但是出于安全和审核原因,我们无法提供直接下载链接.所以这不是一个选项.)
我们如何改进Controller Action以支持部分HTTP内容?
我假设我们首先必须通知客户端我们支持它(向HEAD请求添加"Accept-Ranges:bytes"标头),然后我们必须评估HTTP"Range"标头并使用响应流式传输所请求的文件范围206.代码是否可以在IIS6上托管ASP.NET MVC?是否已有一些代码可用?
另见:
当我退出调试模式时,Visual Studio构建整个解决方案.
这非常令人讨厌,因为该解决方案包含42个项目(ASP.NET MVC,IIS托管的WCF,Silverlight应用程序和其他),并且构建过程锁定了Visual Studio for aprox.30秒.
是什么导致Visual Studio完全重建解决方案?是否有可以打开的设置来确定问题的根源?