我已将无状态服务结构项目添加到我的解决方案中,并将其设置为Web Api自托管主机。 我在Visual Studio添加的任何文件中都没有触及任何内容。唯一有点错误的是解决方案文件上的Git合并错误,导致我不得不再次手动添加项目。
项目命名如下:
当我尝试部署时,出现以下错误:
应用程序的BuildLayout C:\ SfDevCluster \ DATA \ ImageBuilderProxy \的AppType \ ClientCore.CommandStackApi.DeployType 是无效的。服务缺少ServiceManifest.xml ClientCore.CommandStackApiPkg。
当我比较文件和我能想到的所有项目设置时,我的其他Service Fabric项目看起来一切都很好,但它一直在抱怨服务清单丢失了。我唯一注意到的是SF项目缺少对CommandStackApi项目的依赖,但这并没有改变任何东西。
我已尝试过两台不同的计算机,最后一台计算机全新安装了Service Fabric SDK等。
我猜它会在我删除所有项目并重新设置所有项目时能够正常工作,但是当我尝试从MSDN指南中完全构建部署包和PowerShell脚本时,这也发生了,所以我真的会比如对我可能做错的一些见解。如果这个问题发生在一个更成熟的项目中,我将无法从头开始重新创建解决方案并进入Visual Studio blackbox魔术设置,它必须在幕后进行。任何可能出错的想法都会受到赞赏。
答案 0 :(得分:17)
所以我终于弄清楚出了什么问题。
我正在查看文件和项目依赖项,但错过了缺少的服务依赖项。当两个项目通过合并从解决方案中删除时,SF项目必须丢失服务引用。添加这个以解决问题。
答案 1 :(得分:0)
当我将现有的Service Fabric项目(.csproj)添加到Service项目(.sfproj)时,我不得不在\ ApplicationPackageRoot \ ApplicationManifest.xml文件中手动创建两个部分。
示例:
const bodyParser = require('body-parser');
...
app.post('/videos/upload', bodyParser.raw({ type : '*/*' }), (request, response) => {
let data = req.body; // a `Buffer` containing the entire uploaded data
...do something...
});
和
<ServiceManifestImport>
<ServiceManifestRef ServiceManifestName="Sample.Service.Commander" ServiceManifestVersion="1.0.0" />
<ConfigOverrides>
<ConfigOverride Name="Config">
<Settings>
<Section Name="EndpointConfigSection">
<Parameter Name="UseDifferentPorts" Value="[StatelessServices_UseDifferentPorts]" />
</Section>
</Settings>
</ConfigOverride>
</ConfigOverrides>
<Policies>
<EndpointBindingPolicy EndpointRef="OwinEndpoint" CertificateRef="ClusterCert" />
<EndpointBindingPolicy EndpointRef="OwinEndpoint0" CertificateRef="ClusterCert" />
<EndpointBindingPolicy EndpointRef="OwinEndpoint1" CertificateRef="ClusterCert" />
<EndpointBindingPolicy EndpointRef="OwinEndpoint2" CertificateRef="ClusterCert" />
<EndpointBindingPolicy EndpointRef="OwinEndpoint3" CertificateRef="ClusterCert" />
<EndpointBindingPolicy EndpointRef="OwinEndpoint4" CertificateRef="ClusterCert" />
</Policies>
</ServiceManifestImport>
答案 2 :(得分:0)
我在Fabric项目中添加了删除的服务项目,并添加了对服务项目的依赖关系,
答案 3 :(得分:0)
更改服务名称时也会出现此错误。
servicemanifest
或applicationmanifest
更新失败时。 applicationmanifest
必须ServicemanifestRef
的确切文件名。
对我来说,文件名中的下划线(由于重命名)是断点。