首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >csrun & cspack - sitePhysicalDirectories的用途是什么?

csrun & cspack - sitePhysicalDirectories的用途是什么?
EN

Stack Overflow用户
提问于 2011-05-17 21:35:28
回答 3查看 2.4K关注 0票数 3

我正在尝试在我的构建服务器上使用cspack构建Azure部署包,以便在测试服务器上进行devfabric部署(csrun)。cspack会尽职尽责地将web角色的二进制文件和文件复制到csx包中,但它还需要每个web角色的'sitePhysicalDirectory‘路径,该路径嵌入在'RoleModel.xml’文件中。此目录必须在打包时存在。

在部署时,csrun设置一个直接指向sitePhysicalDirectory路径的IIS站点,似乎完全忽略了csx包中打包的web角色二进制文件。不用说,在不同机器上的测试部署不起作用。

我是不是漏掉了什么?为什么cspack/csrun不能将IIS中的物理路径设置为csx包中的approot?如果不使用打包的二进制文件,那么csx包的用途是什么?sitePhysicalDirectories在产品Azure部署中做了什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-05-18 23:47:33

我认为这在一定程度上与添加完整的IIS有关。过去的情况是,Windows Azure中的approot目录是用于RoleEntryPoint进程的,而IIS是主机(同一个目录中的一个)。但是,对于完整的IIS,您应该让w3wp.exe运行您的web代码,并让WaWorker进程执行您的RoleEntryPoint。

我们决定有效地将整个网站(也有WebRole.cs RoleEntryPoint)复制到一个新目录中,并在那里建立完整的IIS根目录。因此,您将注意到Web角色的打包实际上包含代码的两个副本。一次,为网站,一次为WebRole.cs RoleEntryPoint。现在只有你的RoleEntryPoint是不允许执行的。我不记得发生这种情况的所有技术原因,但复制网站可能会更容易/更安全,而不是冒着错过依赖的风险。

票数 2
EN

Stack Overflow用户

发布于 2011-05-17 22:29:49

我开始认为所有这些问题的答案都是“因为cspack/csrun是设计糟糕的垃圾,本不应该发布”。它们似乎是为支持Visual Studio而构建的,而不是其他东西。

在打包后手动更新RoleModel.xml文件以将physicalPath属性设置为“approot”(相对于RoleModel.xml位置)似乎是一种可行的解决方法。

票数 6
EN

Stack Overflow用户

发布于 2011-09-27 02:37:23

我认为应该将sitePhysicalDirectory设置为csx包中AppRoot下的文件夹,而不是web角色二进制文件和文件的源。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6031596

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档