执行cspack命令时出现以下错误 "错误CloudServices051:XML规范无效:元素' WebRole'在命名空间' http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition'内容不完整。预期可能元素列表:'网站'在命名空间' http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition'。"
$sql = "INSERT INTO mail_queue SET email = ?, body = ?, subject = ?"
$statement = $db->prepare($sql);
$statement->bindParam(1, $row['email']);
$statement->bindParam(2, $body);
$statement->bindParam(3, $subject);
$statement->execute();
答案 0 :(得分:0)
我猜你的例子是你正在使用Sririam Krishnan的书 Programming Windows Azure 。
这是在2010年5月发布的。要么这本书提供了一个破碎的例子,或者从那时起已经向Azure框架引入了一些重大变化。
以下是第51页的ServiceDefinition.csdef
文件,经过修改后可与Azure SDK v2.8一起使用:
<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="CloudService1" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" >
<WebRole name="WebRole1" enableNativeCodeExecution="false">
<InputEndpoints>
<InputEndpoint name="HttpIn" protocol="http" port="80" />
</InputEndpoints>
<ConfigurationSettings />
<!-- This sites node was not included in the example -->
<Sites>
<Site name="TokenSite" physicalDirectory="htmlwebsite">
<Bindings>
<Binding name="BindingOne" endpointName="HttpIn" />
</Bindings>
</Site>
</Sites>
</WebRole>
</ServiceDefinition>
添加是Sites
节点,包含一个站点。 physicalDirectory
属性必须指向包含html文件的文件夹。在我添加Sites
节点之前,cspack
实用程序失败了。
有趣的是,如果您阅读了Azure Online Documentation中的Sites
元素(最后更新于2015年4月15日),则会明确说明:
如果您未指定Sites元素,则您的Web角色将作为旧版Web角色托管,并且您的Web角色中只能托管一个网站。 ...此元素是可选的,角色只能有一个网站阻止。 (我的斜体)