

 適用於 .NET 的 AWS SDK V3 已進入維護模式。

我們建議您遷移至 [適用於 .NET 的 AWS SDK V4](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/welcome.html)。如需如何遷移的其他詳細資訊和資訊，請參閱我們的[維護模式公告](https://aws.amazon.com/blogs/developer/aws-sdk-for-net-v3-maintenance-mode-announcement/)。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 設定其他應用程式參數
<a name="net-dg-config-other"></a>

**注意**  
本主題中的資訊專屬於以 .NET Framework 為基礎的專案。根據預設， `App.config`和 `Web.config` 檔案不會出現在以 .NET Core 為基礎的專案中。

## 開啟以檢視 .NET Framework 內容
<a name="w2aab9c31b9b5b1"></a>

您可以設定許多應用程式參數：
+  `AWSLogging` 
+  `AWSLogMetrics` 
+  `AWSRegion` 
+  `AWSResponseLogging` 
+  `AWS.DynamoDBContext.TableNamePrefix` 
+  `AWS.S3.UseSignatureVersion4` 
+  `AWSEndpointDefinition` 
+  [AWS 服務產生的端點](#config-setting-service-generated-awsendpointdefinition) 

這些參數可以在應用程式的 `App.config` 或 `Web.config` 檔案中設定。雖然您也可以使用 適用於 .NET 的 AWS SDK API 設定這些項目，但我們建議您使用應用程式的 `.config` 檔案。兩種方法皆在這裡有所描述。

如需有關如本主題稍後所述使用 `<aws>`元素的詳細資訊，請參閱 [的組態檔案參考 適用於 .NET 的 AWS SDK](net-dg-config-ref.md)。

### AWSLogging
<a name="config-setting-awslogging"></a>

設定開發套件應如何記錄事件，如果有的話。例如，建議使用的方法是使用 `<logging>` 元素，此為 `<aws>` 元素的子元素：

```
<aws>
  <logging logTo="Log4Net"/>
</aws>
```

或使用：

```
<add key="AWSLogging" value="log4net"/>
```

可能值如下：

** `None` **  
關閉 事件日誌。這是預設值。

** `log4net` **  
使用 log4net 記錄。

** `SystemDiagnostics` **  
使用 `System.Diagnostics` 類別記錄。

您可以為 `logTo` 屬性設定多個值，以逗號分隔即可。以下示範設定 `.config` 檔案的 `log4net` 和 `System.Diagnostics` 記錄在：

```
<logging logTo="Log4Net, SystemDiagnostics"/>
```

或使用：

```
<add key="AWSLogging" value="log4net, SystemDiagnostics"/>
```

或者，使用 適用於 .NET 的 AWS SDK API，結合 [LoggingOptions](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Amazon/TLoggingOptions.html) 列舉的值，並設定 [AWSConfigs.Logging](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Amazon/TAWSConfigs.html) 屬性：

```
AWSConfigs.Logging = LoggingOptions.Log4Net | LoggingOptions.SystemDiagnostics;
```

此設定的變更僅適用於新的 AWS 用戶端執行個體。

### AWSLogMetrics
<a name="config-setting-awslogmetrics"></a>

指定開發套件是否應該記錄效能指標。若要在 `.config` 檔案裡設定指標記錄組態，請設定 `<logging>` 元素的 `logMetrics` 屬性值，此元素為 `<aws>` 元素的子元素：

```
<aws>
  <logging logMetrics="true"/>
</aws>
```

或者，在 `<appSettings>` 設定 `AWSLogMetrics` 金鑰：

```
<add key="AWSLogMetrics" value="true">
```

或者，若要使用 適用於 .NET 的 AWS SDK API 設定指標記錄，請設定 [AWSConfigs.LogMetrics](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Amazon/TAWSConfigs.html) 屬性：

```
AWSConfigs.LogMetrics = true;
```

這個設定為所有用戶端/組態設定預設的 `LogMetrics` 屬性。此設定的變更僅適用於新的 AWS 用戶端執行個體。

### AWSRegion
<a name="config-setting-awsregion"></a>

為未明確指定 AWS 區域之用戶端設定預設區域。若要在 `.config` 檔案中設定區域，建議的方法為設定 `aws` 元素裡的 `region` 屬性值：

```
<aws region="us-west-2"/>
```

或者，在 `<appSettings>`區段中設定 *AWSRegion* 金鑰：

```
<add key="AWSRegion" value="us-west-2"/>
```

或者，若要使用 適用於 .NET 的 AWS SDK API 設定區域，請設定 [AWSConfigs.AWSRegion](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Amazon/TAWSConfigs.html) 屬性：

```
AWSConfigs.AWSRegion = "us-west-2";
```

如需為特定區域建立 AWS 用戶端的詳細資訊，請參閱[AWS 區域選擇](net-dg-region-selection.md)。此設定的變更僅適用於新的 AWS 用戶端執行個體。

### AWSResponseLogging
<a name="config-setting-awsresponselogging"></a>

設定開發套件應何時記錄服務回應。可能值如下：

** `Never` **  
永遠不用記錄服務回應。這是預設值。

** `Always` **  
一直記錄服務回應。

** `OnError` **  
只在發生錯誤時記錄服務回應。

若要在 `.config` 檔案裡設定服務記錄組態，建議方式為設定 `<logging>` 元素的 `logResponses` 屬性值，此元素為 `<aws>` 元素的子元素：

```
<aws>
  <logging logResponses="OnError"/>
</aws>
```

或者，在 `<appSettings>`區段中設定 *AWSResponseLogging* 金鑰：

```
<add key="AWSResponseLogging" value="OnError"/>
```

或者，若要使用 適用於 .NET 的 AWS SDK API 設定服務記錄，請將 [AWSConfigs.ResponseLogging](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Amazon/TAWSConfigs.html) 屬性設定為 [ResponseLoggingOption](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Amazon/TResponseLoggingOption.html) 列舉的其中一個值：

```
AWSConfigs.ResponseLogging = ResponseLoggingOption.OnError;
```

這些設定的變更會立即生效。

### `AWS.DynamoDBContext.TableNamePrefix`
<a name="config-setting-aws-dynamodbcontext-tablenameprefix"></a>

設定預設 `TableNamePrefix` `DynamoDBContext` 將會在未手動設定的情況下。

若要設定 `.config` 檔案的表格的前綴名稱，建議的方法為設定 `<dynamoDB>` 元素的子元素 `<dynamoDBContext>` 元素之 `tableNamePrefix` 屬性值，此元素其本身又為 `<aws>` 的子元素：

```
<dynamoDBContext tableNamePrefix="Test-"/>
```

或者，在 `<appSettings>` 設定 `AWS.DynamoDBContext.TableNamePrefix` 金鑰：

```
<add key="AWS.DynamoDBContext.TableNamePrefix" value="Test-"/>
```

或者，若要使用 適用於 .NET 的 AWS SDK API 設定資料表名稱字首，請設定 [AWSConfigs.DynamoDBContextTableNamePrefix](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Amazon/TAWSConfigs.html) 屬性：

```
AWSConfigs.DynamoDBContextTableNamePrefix = "Test-";
```

此設定的變更僅對 `DynamoDBContextConfig` 和 `DynamoDBContext` 新建立的執行個體生效。

### `AWS.S3.UseSignatureVersion4`
<a name="config-setting-aws-s3-usesignatureversion4"></a>

設定 Amazon S3 用戶端是否應使用簽章第 4 版簽署請求。

若要在 `.config` 檔案中設定 Amazon S3 的簽章第 4 版簽署，建議方法是設定 `<s3>`元素的`useSignatureVersion4`屬性，這是 `<aws>` 元素的子元素：

```
<aws>
  <s3 useSignatureVersion4="true"/>
</aws>
```

或者，`true`在 `<appSettings>`區段中將`AWS.S3.UseSignatureVersion4`金鑰設定為 ：

```
<add key="AWS.S3.UseSignatureVersion4" value="true"/>
```

或者，若要使用 適用於 .NET 的 AWS SDK API 設定簽章第 4 版簽署，請將 [AWSConfigs.S3UseSignatureVersion4](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Amazon/TAWSConfigs.html) 屬性設定為 `true`：

```
AWSConfigs.S3UseSignatureVersion4 = true;
```

在預設情況下，此設定為 `false`，但第四版的簽章可能在某些情況下或某些區域中會做為預設使用。當設定為 `true`，第四版的簽章將用於所有的請求。此設定的變更僅在新的 Amazon S3 用戶端執行個體上生效。

### AWSEndpointDefinition
<a name="config-setting-awsendpointdefinition"></a>

設定開發套件是否應開始用自訂組態檔案定義區域和端點。

若要設定 `.config` 檔案的端點定義檔案，我們建議設定 `<aws>` 元素的 `endpointDefinition` 屬性值。

```
<aws endpointDefinition="c:\config\endpoints.json"/>
```

或者，您可以在 `<appSettings>`區段中設定 *AWSEndpointDefinition* 金鑰：

```
<add key="AWSEndpointDefinition" value="c:\config\endpoints.json"/>
```

或者，若要使用 適用於 .NET 的 AWS SDK API 設定端點定義檔案，請設定 [AWSConfigs.EndpointDefinition](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Amazon/TAWSConfigs.html) 屬性：

```
AWSConfigs.EndpointDefinition = @"c:\config\endpoints.json";
```

如果沒有提供檔案名稱，則無法使用自訂組態檔案。此設定的變更僅適用於新的 AWS 用戶端執行個體。endpoint.json 檔案可從 取得[https://github.com/aws/aws-sdk-net/blob/aws-sdk-net-v3.7/sdk/src/Core/endpoints.json](https://github.com/aws/aws-sdk-net/blob/aws-sdk-net-v3.7/sdk/src/Core/endpoints.json)。

### AWS 服務產生的端點
<a name="config-setting-service-generated-awsendpointdefinition"></a>

有些 AWS 服務會產生自己的端點，而不是使用區域端點。這些服務的用戶端使用特定於該服務與特定於您的資源的服務 URL。這些服務的兩個範例是 Amazon CloudSearch 和 AWS IoT。以下範例說明如何取得這些服務的端點。

#### Amazon CloudSearch 端點範例
<a name="cs-endpoints-example"></a>

Amazon CloudSearch 用戶端用於存取 Amazon CloudSearch 組態服務。您可使用 Amazon CloudSearch 組態服務來建立、設定和管理搜尋網域。若要建立搜尋網域，請建立 [CreateDomainRequest](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/CloudSearch/TCreateDomainRequest.html) 物件並提供 `DomainName` 屬性。使用請求物件建立 [AmazonCloudSearchClient](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/CloudSearch/TCloudSearchClient.html) 物件。呼叫 [CreateDomain](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/CloudSearch/MCloudSearchCreateDomainCreateDomainRequest.html) 方法。呼叫傳回的 [CreateDomainResponse](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/CloudSearch/TCreateDomainResponse.html) 物件包含 `DomainStatus` 屬性，同時具有 `DocService` 和 `SearchService` 端點。建立 [AmazonCloudSearchDomainConfig](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/CloudSearchDomain/TCloudSearchDomainConfig.html) 物件，並使用它來初始化 [AmazonCloudSearchDomainClient](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/CloudSearchDomain/TCloudSearchDomainClient.html) 類別的 `DocService`和 `SearchService`執行個體。

```
// Create domain and retrieve DocService and SearchService endpoints
DomainStatus domainStatus;
using (var searchClient = new AmazonCloudSearchClient())
{
    var request = new CreateDomainRequest
    {
        DomainName = "testdomain"
    };
    domainStatus = searchClient.CreateDomain(request).DomainStatus;
    Console.WriteLine(domainStatus.DomainName + " created");
}

// Test the DocService endpoint
var docServiceConfig = new AmazonCloudSearchDomainConfig
{
    ServiceURL = "https://" + domainStatus.DocService.Endpoint
};
using (var domainDocService = new AmazonCloudSearchDomainClient(docServiceConfig))
{
    Console.WriteLine("Amazon CloudSearchDomain DocService client instantiated using the DocService endpoint");
    Console.WriteLine("DocService endpoint = " + domainStatus.DocService.Endpoint);

    using (var docStream = new FileStream(@"C:\doc_source\XMLFile4.xml", FileMode.Open))
    {
        var upload = new UploadDocumentsRequest
        {
            ContentType = ContentType.ApplicationXml,
            Documents = docStream
        };
        domainDocService.UploadDocuments(upload);
    }
}

// Test the SearchService endpoint
var searchServiceConfig = new AmazonCloudSearchDomainConfig
{
    ServiceURL = "https://" + domainStatus.SearchService.Endpoint
};
using (var domainSearchService = new AmazonCloudSearchDomainClient(searchServiceConfig))
{
    Console.WriteLine("Amazon CloudSearchDomain SearchService client instantiated using the SearchService endpoint");
    Console.WriteLine("SearchService endpoint = " + domainStatus.SearchService.Endpoint);

    var searchReq = new SearchRequest
    {
        Query = "Gambardella",
        Sort = "_score desc",
        QueryParser = QueryParser.Simple
    };
    var searchResp = domainSearchService.Search(searchReq);
}
```

#### AWS IoT 端點範例
<a name="iotlong-endpoints-example"></a>

若要取得 的端點 AWS IoT，請建立 [AmazonIoTClient](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/IoT/TIoTClient.html) 物件並呼叫 [DescribeEndPoint](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/IoT/MIoTDescribeEndpointDescribeEndpointRequest.html) 方法。傳回的 [DescribeEndPointResponse](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/IoT/TDescribeEndpointResponse.html) 物件包含 `EndpointAddress`。建立 [AmazonIotDataConfig](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/IotData/TIotDataConfig.html) 物件，設定 `ServiceURL` 屬性，並使用此物件執行個體化 [AmazonIotDataClient](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/IotData/TIotDataClient.html) 類別。

```
string iotEndpointAddress;
using (var iotClient = new AmazonIoTClient())
{
    var endPointResponse = iotClient.DescribeEndpoint();
    iotEndpointAddress = endPointResponse.EndpointAddress;
}

var ioTdocServiceConfig = new AmazonIotDataConfig
{
    ServiceURL = "https://" + iotEndpointAddress
};
using (var dataClient = new AmazonIotDataClient(ioTdocServiceConfig))
{
    Console.WriteLine("AWS IoTData client instantiated using the endpoint from the IotClient");
}
```