

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 对 Web 应用程序进行故障排除
<a name="webapp-troubleshooting"></a>

**注意**  
这些疑难解答提示适用于网络应用程序管理员，而不是最终用户。对于最终用户，如果您遇到任何问题，请联系您的 Web 应用程序管理员。以下段落中*您的*所有实例均指向 Web 应用程序管理员。

## 解决网络错误
<a name="webapp-network-error"></a>

**描述**

您的最终用户在加载 Web 应用程序端点时**会看到网络横幅网络错误**。

**原因**

最常见的问题如下：
+ 管理员未分配尝试登录新应用程序的用户。
+ 管理员未向您的 IAM 角色添加必要的操作。
+ 您会看到分配给您的用户的 S3 访问权限列表，但是您的 Amazon S3 存储桶的 CORS 配置不正确。

 **解决方案** 
+  在 IAM Identity Center 中，确保将用户分配到正确的应用程序。或者，如果您分配了群组，请确保尝试登录的用户属于正确的群组。[在 Transfer Family 网络应用中分配或添加用户或群组](webapp-add-users.md)中对此进行了描述。
+ 检查您的角色是否包含针对`sts:AssumeRole`和操作的**自定义信任策略**中的必要`sts:SetContext`操作。[为 Transfer Family 网络应用程序配置 IAM 角色](webapp-roles.md)中对此进行了描述。
+ 查看您的 Web 应用程序使用的所有存储分区的 CORS 政策。[为您的 Amazon S3 存储桶设置 Cross-origin 资源共享 (CORS)](access-grant-cors.md#cors-configure) 中对此进行了介绍。

## 对配置的存储桶未显示进行故障排除
<a name="webapp-no-bucket"></a>

**描述**

一切似乎都配置正确，但是 Amazon S3 存储桶未出现在网络应用程序中。

**原因**

一个可能的原因是 Amazon S3 存储桶与网络应用程序不在同一个账户中。

 **解决方案** 

确保 Amazon S3 存储桶与网络应用程序位于同一个账户中。 Cross-account目前不支持存储桶。

## 解决自定义 URL 错误
<a name="webapp-customURL-errors"></a>

**描述**

当您的最终用户登录 Web 应用程序时，他们会收到错误消息 “**授权失败：缺少授权码”。**

**原因**

如果您 CloudFront 直接使用而不是提供的 CloudFormation 模板，则可能错误地将原始请求策略配置为不转发查询字符串。

**解决方案**

更新您的源站请求政策，将查询字符串和 Cookie 转发到源。

**描述**

当您的最终用户尝试访问 Transfer Family 网络应用程序时，他们会收到 404 响应。

**原因**

如果您 CloudFront 直接使用而不是提供的 CloudFormation 模板，则可能错误地将缓存策略配置为在缓存密钥中包含`Host`标头，或者错误配置了原始请求策略以转发标头。`Host`

**解决方案**
+ 确保您的缓存策略不在缓存密钥中包含`Host`标头
+ 请确保您的原始请求策略不会转发标`Host`头。

## 对其他错误进行故障排除
<a name="webapp-various-errors"></a>

**描述**

您的最终用户无法登录，或者无法查看任何存储桶或文件，或者您会收到其他错误。

**原因**

一个可能的原因是，IAM 身份中心实例 ARN 与您的授权 ARN 或您的网络应用程序 IAM 身份中心实例 ARN 的值不匹配。

 **解决方案** 

检查以下项目以查看它们是否匹配。
+  在 IAM 身份中心中，导航到**设置**并查看**实例 ARN**。

  ```
  arn:aws:sso:::instance/ssoins-{{instance-identifier}}
  ```
+ 在 Amazon S3 中，导航到 “**访问授权**”，然后查看您**的 IAM 身份中心实例 AR** N。

  ```
  arn:aws:sso::{{account-id}}:application/ssoins-{{instance-identifier}}/apl-1234567890abcdef0
  ```
+ 在 Transfer Family 中，导航到您的网络应用程序详情页面并查看其实例 ARN。

  ```
  arn:aws:sso:::instance/ssoins-{{instance-identifier}}
  ```

这三个位置的{{instance-identifier}}值必须相同。

## Web 应用程序中出现重复的 S3 存储桶
<a name="webapp-duplicate-buckets"></a>

**描述**

用户可以在 Transfer Family 网络应用程序界面中多次看到相同的 S3 存储分区。

**原因**

当用户属于多个 Active Directory 群组，这些群组对同一 S3 存储桶有重复的授权时，就会发生这种情况。无论用户是否向同一个存储桶位置分配了多个授权，Web 应用程序都会列出与该用户关联的所有顶级授权（UID 或 GID）。

**解决方案**

要解决此问题，管理员应删除重复的授权，以便每个用户对每个 S3 位置只有一个授权。查看您的 S3 访问权限授权配置，并整合不同的 Active Directory 组中同一存储桶的重复授权。