Wou*_*r B 7 c# asp.net azure-service-fabric service-fabric-stateless
我创建了一个Service Fabric应用程序,它具有普通的无状态服务和无状态的ASP.NET Core Web应用程序.在不更改任何默认代码的情况下,我尝试部署应用程序.部署期间发生错误:
Register-ServiceFabricApplicationType:
C:\ SfDevCluster\Data\ImageBuilderProxy\AppType\AadMockApplicationType中应用程序的BuildLayout无效.服务
TenantWebServerPkg 缺少代码.
在检查我的包之后,我注意到包中没有包含代码,只有服务清单文件和配置包:
我的Web应用程序服务清单:
<?xml version="1.0" encoding="utf-8"?>
<ServiceManifest Name="TenantWebServerPkg"
Version="1.0.0"
xmlns="http://schemas.microsoft.com/2011/01/fabric"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ServiceTypes>
<!-- This is the name of your ServiceType.
This name must match the string used in RegisterServiceType call in Program.cs. -->
<StatelessServiceType ServiceTypeName="TenantWebServerType" />
</ServiceTypes>
<!-- Code package is your service executable. -->
<CodePackage Name="Code" Version="1.0.0">
<EntryPoint>
<ExeHost>
<Program>TenantWebServer.exe</Program>
<WorkingFolder>CodePackage</WorkingFolder>
</ExeHost>
</EntryPoint>
</CodePackage>
<!-- Config package is the contents of the Config directoy under PackageRoot that contains an
independently-updateable and versioned set of custom configuration settings for your service. -->
<ConfigPackage Name="Config" Version="1.0.0" />
<Resources>
<Endpoints>
<!-- This endpoint is used by the communication listener to obtain the port on which to
listen. Please note that if your service is partitioned, this port is shared with
replicas of different partitions that are placed in your code. -->
<Endpoint Protocol="http" Name="ServiceEndpoint" Type="Input" Port="8396" />
</Endpoints>
</Resources>
</ServiceManifest>
Run Code Online (Sandbox Code Playgroud)
尝试了几个小时后,我注意到代码包已发布到另一个文件夹: C:\Users\username\AppData\Local\Temp\PublishTemp\TenantWebServer118
如何正确打包Web应用程序以包含代码包?
小智 2
注意: 适用于 Visual Studio 2015 的 .NET Core 工具不再更新,但是如果您仍在使用 Visual Studio 2015,则需要安装.NET Core VS 2015 Tooling Preview 2。
要开发 ASP.NET Core Service Fabric 应用程序,您应该安装以下工作负载:
- Azure 开发(在Web 和云下)
- ASP.NET 和 Web 开发(在Web & Cloud下)
- .NET Core跨平台开发(在其他工具集下)
问题:为什么代码包发布到不同的文件夹?
答案: 示例(Powershell)注册应用程序类型
PS C:\> Copy-ServiceFabricApplicationPackage -ApplicationPackagePath "c:\work\PersistentToDoListService" -ImageStoreConnectionString "file:C:\SfDevCluster\Data\ImageStoreShare" -ApplicationPackagePathInImageStore "PersistentToDoListService"
PS C:\> Register-ServiceFabricApplicationType -ApplicationPathInImageStore "PersistentToDoListService"
Run Code Online (Sandbox Code Playgroud)
Copy-ServiceFabricApplicationPackage将“c:\work\PersistentToDoListService”文件夹中找到的应用程序包复制到映像存储。该包被复制到映像存储中的相对路径“PersistentToDoListService”。
Register-ServiceFabricApplicationType命令注册在相对路径“PersistentToDoListService”中找到的应用程序类型。
归档时间: |
|
查看次数: |
719 次 |
最近记录: |