部署到azure计算模拟器时缺少静态内容

时间:2012-06-25 09:19:16

标签: asp.net-mvc-3 azure

使用基于现有MVC3项目的Web角色创建了一个新的云服务项目。当我尝试在 azure计算机模拟器网站中执行Web角色时,除了使用任何图像之外,其他工作方式都很正常,因为这样可以减少页面样式。当我尝试通过浏览器上的直接Url访问任何这些缺少的资源(例如,css或图像文件)时,只会出现“内部服务器错误”。

我已经检查了cloudService项目下的obj文件夹,尽管存在所有视图和dll,但是当我在计算模拟器中运行项目时,Content文件夹(其中css和图像应该驻留)是空的,但是它是流行的当我对云进行部署时。

由于之前在论坛上的调查,我已经检查并重新检查这些文件是否具有“BuildAction = Content”,并且静态内容模块安装在我的本地IIS中而没有正面结果。

我正在使用Azure Tools 1.7和VS 2010

更新 当试图在模拟器中启动Web角色(在VS2010中按下播放按钮)时,Windows应用程序事件日志中出现两个警告,这些警告似乎与问题有关(两个警告都来自 IIS Express

这里是警告(原始西班牙语版本中的第一个,后来是个人英语翻译)

“El directorio especificado para almacenarencachéelcontenido comprimido C:\ Users \ dgarcia \ AppData \ Local \ dftmp \ Resources \ c122a014-7804-49ec-b59f-c9f23c924050 \ temp \ temp \ RoleTemp \ iisexpress \ IIS Temporary Compressed文件\ d42ecaeb-eabb-4dd2-89b8-aecd01f36ba3 noesválido.Lescompresiónceestáticasseestádeshabilitando。“

“为缓存压缩内容[非常长的临时路径]指定的目录无效。正在禁用静态压缩。”

(2秒后发出第二次警告)

“错误delmóduloFailedRequestTracingal crear el directorio'\?\ C:\ Users \ dgarcia \ AppData \ Local \ dftmp \ Resources \ c122a014-7804-49ec-b59f-c9f23c924050 \ directory \ DiagnosticStore \ FailedReqLogFiles \ Web \ deployment17 (8).CloudService.BRAINVT.Web_IN_0_Web \'。没有segeneraránregistroshasta que se corrijaestasituación.Elproblema se produjo al menos 1 veces enlosúltimos5minutos.El dato es el error。“

“模块FailedRequestTracing创建目录时出错[奇怪的超长路径]。在更正情况之前不会生成更多日志。在过去5分钟内至少出现1次问题。数据是错误(?)。”

UPDATE2: 假设httpCompression是根问题,尝试将此设置的目录属性更改为指向c:\ temp这样的路径,该路径具有Everyone的开放权限(遗憾的是,这不能在项目的web.config文件中完成,必须在IIS中完成快速通过de appcmd 命令行工具)只发现Azure Compute Emulator为每个WebRole生成自己的applicationHost.config文件,覆盖IIS express'全局配置,因此覆盖我已更改的设置

3 个答案:

答案 0 :(得分:2)

如果文件丢失,您应该收到找不到文件错误,而不是内部服务器错误。如果您在部署到云时看到包中的文件,这意味着您的VS设置应该没问题。

我建议你看一下事件日志(应用程序日志)。您可以通过配置诊断或通过远程桌面连接来完成此操作。如果还有其他事情发生,您应该在事件日志中看到描述问题的ASP.NET警告。

答案 1 :(得分:2)

终于解决了。我对解决这类问题的试用/错误方法不满意,我更倾向于理解根本原因,但这是导致这一工作的过程:

  1. 在我的解决方案中删除并重新创建了云服务项目(不确定这是否有事可做)

  2. 将我的MVC项目(web角色所基于的项目)的开发服务器从IIS Express更改为内置于'Cassini'。这收回了我在模拟器中的静态内容(hurra!)

  3. 之后,知道我需要IIS Express功能来测试我项目的所有部分,改回IIS Express和...... OMG!静态内容仍然存在。

  4. 这适用于2台不同的机器。如上所述,我最想找到根本原因,但目前一切正常。

答案 2 :(得分:0)

看起来像是本地IIS设置问题 - 您可以尝试http://technet.microsoft.com/en-us/library/cc735199(v=ws.10).aspx处的建议来更改压缩设置,然后重试。