我正在尝试将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."
我修改了共享点应用程序池标识的访问权限(在我的情况下,它是“网络服务”帐户)但它仍然无法访问该文件夹。
有没有人能解决这个问题?非常感谢你的帮助!!