我在Service Fabric本地群集中运行了.NetCore无状态WebAPI服务。
return Endpoint.Start(endpointConfiguration).GetAwaiter().GetResult();
当我尝试启动NServiceBus端点时,出现此异常:
拒绝访问路径“ C:\ SfDevCluster \ Data_App_Node_0 \ AppType_App10 \ App.APIPkg.Code.1.0.0.diagnostics”。
如何解决? VS在管理员下运行。
答案 0 :(得分:1)
您遇到的问题是因为您尝试写入的文件夹不应该由您的应用程序写入。
package文件夹用于存储您的应用程序二进制文件,并且只要将应用程序托管在节点中就可以动态重新创建。
此外,这些二进制文件可被在同一节点上运行的多个服务实例重用,因此它可能会竞争使用不同实例的文件。
您应改为指示您的应用程序写入WorkFolder
,
public Stateless1(StatelessServiceContext context): base(context)
{
string workdir = context.CodePackageActivationContext.WorkDirectory;
}
上面的代码将为您提供这样的路径:
'C:\SfDevCluster\Data_App_Node_0\AppType_App10\App.APIPkg.Code.1.0.0.diagnostics\work'
此文件夹是动态的,将根据应用程序正在运行的节点或实例而变化,创建后,您的应用程序应该已经具有写入权限。
有关更多信息,请参见:
how-do-i-get-files-into-the-work-directory-of-a-stateless-service?forum=AzureServiceFabric
答案 1 :(得分:0)