2017-06-07 9 views
0

私は、Microsoft Azureクライアントクラス(CloudContext.Clients)を使用してStorageManagementClientを作成する、自分のasp.net mvc 5アプリケーションにメソッドを持っています。認証するために証明書が必要なので、私は自己署名入りの証明書を作成しました。C#を使用してAzureストレージアカウントを作成する "要求が中止されました:SSL/TLSセキュアチャネルを作成できませんでした"

開発機ですべて正常です。システム:紺碧の仮想マシン(Windowsサーバー2008 R2)私は予想通りのコードによって発見された証明書をインポートしているが、StorageManagementClientを作成するコードが実行されるときに例外が

内部例外の種類を投げている上

.Net.WebException 内部例外:要求が中断されました:SSL/TLSセキュアチャネルを作成できませんでした。 インナー出典:システム インナースタックトレース:System.Net.HttpWebRequest.EndGetRequestStreamで System.Net.Http.HttpClientHandler.GetRequestStreamCallbackで(たIAsyncResult asyncResult、TransportContext &コンテキスト) (たIAsyncResultのAR) 例外タイプ:System.Net。 Http.HttpRequestException 例外:要求の送信中にエラーが発生しました。 出典:テスト スタックトレース:Microsoft.WindowsAzure.StorageAccountOperationsExtensions.Create(IStorageAccountOperations操作でMicrosoft.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessでMicrosoft.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccessで (タスクタスク) (タスクタスク) 、StorageAccountCreateParametersパラメーター) ApplicationPortal.Code.DeployAzureResources.CreateStorageAccount(SubscriptionCloudCredentials資格情報、String storageName)C:¥Users¥DEVESYS1¥Documents¥Visual Studio 2017¥Projects¥PaSeaPortal¥ApplicationPortal¥Code¥DeployAzureResources.cs:line 106 at C:\ Users \ DEVSYS1 \ Documents \ Visual Studio 2017 \ Projects \ PaSeaPortal \ ApplicationPortal \ Controllers \ AccountControlのApplicationPortal.Controllers.AccountController.d__21.MoveNext() ler.cs:ライン355

イベントビューアで、私はこのエラーを見ています「次の致命的なアラートが生成されました:80内部エラー状態が301である」

+0

スタックオーバーフローは、プログラミングと開発の質問のサイトです。この質問は、プログラミングや開発に関するものではないので、話題にはならないようです。ヘルプセンターの[ここではどのトピックを参照できますか](http://stackoverflow.com/help/on-topic)を参照してください。おそらく[スーパーユーザ](http://スーパーユーザ。com /)や[Unix&Linux Stack Exchange](http://unix.stackexchange.com/)がもっと良い場所になるでしょう。 [Dev Opsについての質問はどこに投稿しますか?](http://meta.stackexchange.com/q/134306) – jww

答えて

0

私は、証明書をインポートしました

を期待通りのコードで発見されたあなたはAzureの仮想マシン上で証明書.cerの自己署名あなたは がインストールされていることを意味するのですか? そうでない場合は、開発マシンから証明書をエクスポートし、Azure仮想マシンにインストールしてみてください。そして、次のコードを使ってもう一度それをテストしてみてください。

public static X509Certificate2 GetCert(string thumbprint) 
     { 

      X509Store certStore = new X509Store(StoreName.My, StoreLocation.CurrentUser); 
      certStore.Open(OpenFlags.ReadOnly); 
      X509Certificate2Collection certCollection = certStore.Certificates.Find(X509FindType.FindByThumbprint, thumbprint, false); 
      if (certCollection.Count <= 0) return null; 
      X509Certificate2 cert = certCollection[0]; 
      return cert; 
     } 


var thumbprint= "cert thumbprint"; 
SubscriptionCloudCredentials credentials = new CertificateCloudCredentials("subscription Id", cert); 
StorageManagementClient storageManagementClient = new StorageManagementClient(credentials); 
storageManagementClient.StorageAccounts.Get("storage name"); //only classical storage can be got. 

packages.config

<?xml version="1.0" encoding="utf-8"?> 
<packages> 
    <package id="Hyak.Common" version="1.0.2" targetFramework="net462" /> 
    <package id="Microsoft.Azure.Common" version="2.0.4" targetFramework="net462" /> 
    <package id="Microsoft.Azure.Common.Dependencies" version="1.0.0" targetFramework="net462" /> 
    <package id="Microsoft.Bcl" version="1.1.9" targetFramework="net462" /> 
    <package id="Microsoft.Bcl.Async" version="1.0.168" targetFramework="net462" /> 
    <package id="Microsoft.Bcl.Build" version="1.0.14" targetFramework="net462" /> 
    <package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="1.0.0" targetFramework="net462" /> 
    <package id="Microsoft.Net.Compilers" version="1.0.0" targetFramework="net462" developmentDependency="true" /> 
    <package id="Microsoft.Net.Http" version="2.2.22" targetFramework="net462" /> 
    <package id="Microsoft.WindowsAzure.Common" version="1.4.1" targetFramework="net462" /> 
    <package id="Microsoft.WindowsAzure.Common.Dependencies" version="1.1.1" targetFramework="net462" /> 
    <package id="Microsoft.WindowsAzure.Management.Storage" version="6.0.1" targetFramework="net462" /> 
    <package id="Newtonsoft.Json" version="6.0.4" targetFramework="net462" /> 
</packages> 

あなたはリソース管理ストレージアカウントをクリートしようとした場合、使用Microsoft.Azure.Management.Fluent SDKを試していてください。また、より多くのデモコードを取得することができますgithub

+0

問題が見つかりました。証明書に関する特権がありました – ssinotna

関連する問題