我正在尝试将 AWSSDK DLL 添加到我的 C# 代码中以收集我的事件数据并将数据传递到 AWS 存储桶。我的 C# 代码是使用 VS Share 点模板创建的。该项目包含 WSP 文件。以下代码指示我如何使用 AWSSDK :
using Amazon;
using Amazon.CognitoIdentity;
using Amazon.MobileAnalytics.MobileAnalyticsManager;
CognitoAWSCredentials credentials = new CognitoAWSCredentials(
"us-east-1:xxxxxx",//PoolID
RegionEndpoint.USEast1
);
Amazon.AWSConfigs.ApplicationName = "M4SP";
AWSConfigs.LoggingConfig.LogMetrics = true;
AWSConfigs.LoggingConfig.LogResponses = ResponseLoggingOption.Always;
AWSConfigs.LoggingConfig.LogMetricsFormat = LogMetricsFormatOption.JSON;
MobileAnalyticsManager manager = MobileAnalyticsManager.GetOrCreateInstance(
"xxxxxxxxxxxxxxxxxxx",//AppID
credentials,
RegionEndpoint.USEast1 // Region
);
CustomEvent customEvent = new CustomEvent("TestRecordEvent");
customEvent.AddAttribute("label", "M4SP");
customEvent.AddAttribute("action", "invoke");
customEvent.AddAttribute("details", "run the workflow test");
manager.RecordEvent(customEvent);
我发现 AWSSDK DLL 中的代码在将数据传递到 AWS 数据库之前尝试将数据记录到本地文件夹。文件夹的位置是C:\Users\[userid]\AppData\Roaming\AWS Mobile Services
。独立项目中没有问题,因为它始终使用当前用户的身份来运行应用程序,因此它可以访问该文件夹。但是,由于 SharePoint 解决方案的身份验证机制,它使用应用程序池标识来访问文件夹,并出现访问被拒绝问题,整个过程失败。这是错误:
"Access to the path 'AWS Mobile Services\M4SP' is denied."
我修改了共享点应用程序池标识的访问权限(在我的情况下,它是“网络服务”帐户),但它仍然无法访问该文件夹。
有没有人有这个问题的解决方案?非常感谢您的帮助!!