2012-06-25 39 views
2

使用基于现有MVC3项目的Web角色创建新的云服务项目。当我尝试在天蓝色计算模拟器中执行web角色时,网站可以很好地工作,除了使用任何图像或CSS样式来渲染页面样式更少。当我尝试通过浏览器上的直接Url访问任何这些缺失的资源(例如css或图像文件)时,只会出现“内部服务器错误”。部署到Azure计算模拟器时缺少静态内容

我已经检查了cloudService项目下的obj文件夹,尽管存在所有视图和dll,但是当我在计算模拟器中运行项目时,内容文件夹(css和图像应该驻留的位置)为空,但是它是当我对云进行部署时受到人们的欢迎。

由于之前在论坛上的调查结果,我检查并重新检查过这些文件有“BuildAction = Content”,并且Static Content模块安装在我的本地IIS中,没有肯定的结果。

我使用Azure工具1.7和VS 2010

UPDATE: 试图在模拟器中启动Web角色(推入VS2010播放按钮)在Windows应用程序事件日志出现两次警告时似乎与问题有关(两个警告都源自IIS Express)。

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

“厄尔尼诺上级目录especificado对almacenar恩Caché的EL contenido comprimido C:\用户\ dgarcia \应用程序数据\本地\ dftmp \ Resources \ c122a014-7804-49ec-b59f-c9f23c924050 \ temp \ temp \ RoleTemp \ iisexpress \ IIS Temporary Compressed Files \ d42ecaeb-eabb-4dd2-89b8-aecd01f36ba3 no esválido。Lacompresiónestáticaseestádeshabilitando。“

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

(2秒后触发第二报警)

“错误德尔模FailedRequestTracing人CREAR EL上级目录“\ \ C:\ Users \用户dgarcia \应用程序数据\本地\ dftmp \资源\ c122a014-7804-49ec -b59f-c9f23c924050 \ directory \ DiagnosticStore \ FailedReqLogFiles \ Web \ deployment17(8).CloudService.BRAINVT.Web_IN_0_Web \'。No segeneraránregistros hasta que se corrija estasituación。El problema se produjo al menos 1 veces en losíltimos5 minutos 。El dato es el错误。“

“模块FailedRequestTracing创建目录[奇怪的超长路径]时出现错误,直到情况得到纠正才会生成更多日志在最近5分钟内出现问题至少1次数据是错误(?)。 “

UPDATE2: 假设httpCompression是问题的根源,试图改变这个设置的目录属性指向像C路径:它可以为所有人开放权限\ TEMP(可惜这不能在该项目的网站完成.config文件,并且必须在IIS Express中通过de appcmd命令行工具完成),才能发现Azure计算模拟器生成自己的applicationHost。每个WebRole压倒一切的配置文件IIS Express的全球配置,因此重写我已经改变了

回答

2

终于解决了。我不是很满意的试验/错误的方法来解决这样的问题,我倒是更愿意理解的根本原因,但这里是导致这个工作过程:

  1. 删除并重新创建云(不知道这是否有什么要做)

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

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

这在2个不同的机器上工作。正如我所说,我想最好找到根本原因,但目前一切正常。

2

如果这些文件会被丢失的设置,你应该得到找不到文件错误,而不是一个内部服务器错误 。如果您在部署到云时看到包中的文件,这意味着您的VS设置应该是正常的。

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

+0

嗨,感谢您的快速回复。部署到本地模拟器时会出现问题?我可以将RDP传输到本地模拟器模拟虚拟机吗? (我很抱歉,如果这个问题是基本的,但我对蔚蓝很新) – diegoGarc

+0

RDP到本地模拟器是不可能的。你能否验证你的本地事件日志? (开始>运行> eventvwr.exe>应用程序) –

+0

好的,有几个警告似乎与问题有一些关系。我将更新问题以添加这些警告 – diegoGarc

0

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

+1

我无法应用technet文章中描述的过程,因为它们涉及IIS管理控制台,该控制台不适用于IIS 7.5 Express ...我知道有一个名为appcmd的cmd工具,可以管理IIS Express配置,但对我来说很模糊,我现在试图弄清楚它是如何工作的。我会保持这个问题更新... – diegoGarc