Amazon.Runtime.AmazonServiceException: Unable to find credentials

In AWS Explorer for Visual Studio you can create user profiles that give you different permissions on AWS, then you can choose which profile you want to use in AWS Explorer. These profiles are available only to your Windows user account, if anyone else uses your computer then they will have to create their own profiles. Any software that you run under your user account can also use these profiles.

If you don't configure your application to use a specific profile then it will use the default profile.

This problem occurs because IIS runs under a different user account than the one you are logged into, and therefore does not have access to your AWS profiles.

There are several ways to tell your application which AWS profile to use when it runs (see http://docs.aws.amazon.com/sdk-for-net/v2/developer-guide/net-dg-config-creds.html). The simplest option for developers is to create a credentials file and reference that file from web.config. For example if you create a file called C:\aws\credentials you can tell your application to use profile2 from this credentials file by adding this to your web.config file.

<configuration>

  <configSections>
    <section name="aws" type="Amazon.AWSSection, AWSSDK.Core" />
  </configSections>

  <aws 
    region="us-east-1" 
    profileName="profile2"
    profilesLocation="C:\aws\credentials" />

</configuration>

The content of the credentials file should be similar to this:

[profile1]
aws_access_key_id = {accessKey}
aws_secret_access_key = {secretKey}

[profile2]
aws_access_key_id = {accessKey}
aws_secret_access_key = {secretKey}

To get an access key and a secret key go to the AWS IAM console at https://console.aws.amazon.com/iam/home?region=us-east-1#/users choose the user you want your application to run as, then click on the "Security Credentials" tab then click the "Create Access Key" button.


Create a credentials file at any path where you can access this path from web service application e.g. C:\awsfile\credentials but remember don't give any extension this file File should contains following data.

[default]
aws_access_key_id=[your_access_key]
aws_secret_access_key=[your_secret_key]

After this you need to set the path in appsetting tag in the Web.config file:

<appSettings>
<add key="AWSProfilesLocation" value="C:\awsfile\credentials" />
<add key="AWSRegion" value="us-east-1" />
</appSettings>