2017-11-02 16 views
0

Windows認証を持つ外部サービスを呼び出そうとしていますが、IISで動作しているWindows開発マシンから正常に動作しますが、一度サイトをAzureに公開すると、たとえ構成が同じであってもサービスです。私は戻って取得エラー、それはアズールでそれも認証をしようとしていないように感じているAzureでWCF設定/認証が機能しない

System.ServiceModel.Security.MessageSecurityException: 
The HTTP request is unauthorized with client authentication scheme 'Negotiate'. 
The authentication header received from the server was 'Negotiate'. ---> 
System.Net.WebException: The remote server returned an error: (401) Unauthorized. 

。あなたが設定されている場合

サービスの構成は次のようになり、

<system.serviceModel> 
    <bindings> 
     <basicHttpBinding> 
      <binding name="Custom_Binding" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" maxBufferPoolSize="524288" receiveTimeout="00:20:00" sendTimeout="00:20:00"> 
       <readerQuotas maxDepth="32" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" /> 
       <security mode="TransportCredentialOnly"> 
        <transport clientCredentialType="Windows" /> 
       </security> 
      </binding> 
     </basicHttpBinding> 
    </bindings> 
    <client> 
     <endpoint address="http://www.otherdomain.com/webServiceRequest" binding="basicHttpBinding" bindingConfiguration="Custom_Binding" contract="webServiceRequest_Port" name="webServiceRequest_Port" /> 
    </client> 
</system.serviceModel> 

これは、要求を行うC#コードで、

var client = new webServiceRequest_PortClient(); 
client.ClientCredentials.UserName.UserName = "domain\Username"; 
client.ClientCredentials.UserName.Password = "Password"; 
var response = await client.PerformServiceAsync(method, request); 

/ヴィクトル

答えて

0

それが動作しますWindowsの資格情報?

var client = new webServiceRequest_PortClient(); 
client.ClientCredentials.Windows.ClientCredential.UserName = "domain\Username"; 
client.ClientCredentials.Windows.ClientCredential.Password = "Password"; 
var response = await client.PerformServiceAsync(method, request); 
+0

ありがとうございました。これは解決策の一部であり、私の側にはパスワードとユーザー名に関するいくつかの設定上の問題もありました。それは何らかの理由でClientCredentialsを実行したがWindowsでは実行しなかったときに働いた。 –

0
System.ServiceModel.Security.MessageSecurityException: 
The HTTP request is unauthorized with client authentication scheme 'Negotiate'. 
The authentication header received from the server was 'Negotiate'. ---> 
System.Net.WebException: The remote server returned an error: (401) Unauthorized 

例外によると、私はあなたがあなたのウェブサイトはAzureのWebAppのに公開することを前提としています。

Windows認証を使用する場合は、Windows認証がWebサーバーに対して有効になっていることを確認する必要があります。 remote to Azure websiteで認証オプションの下にWindows認証がないことを確認することができます。詳しくは、スクリーンショットを参照してください。

enter image description here

Azureがサービスを提供することができれば回避策として、Azureのcloud serviceを使用することができ、可能です。

+0

申し訳ありませんが、アプリサービスだと忘れてしまいました。 –

+0

AzureもWebAppサイトにリモートアクセスできます。詳しくは[blog](https://azure.microsoft.com/en-us/blog/remote-administration-of-windows-azure-websites-using- iis-manager /)を使用します。 –

関連する問題