0

独自のシングル サインオン サービスを使用して、リモートでメンバーシップ コールを行っています。VPN経由で接続します。

エラーが発生しています:

Service.Web.Security.Membership.ValidateUser(username, password);

VPN が機能しているかどうかにかかわらず:

スタックトレース:

[ArgumentNullException: 値を null にすることはできません。パラメータ名: remoteAddress] System.ServiceModel.ClientBase`1..ctor(String endpointConfigurationName, String remoteAddress) +3235973 ProprietaryService.Security.Membership.MembershipServiceProxy.ValidateUser(String applicationName, String username, String password, Int32 maxInvalidPasswordAttempts) +231 ProprietaryService. Security.Membership.MembershipProvider.ValidateUser(文字列のユーザー名、文字列のパスワード) +27 System.Web.Security.Membership.ValidateUser(文字列のユーザー名、文字列のパスワード) +26 includes_usercontrols_LoginForm.btnLogin_Click(オブジェクトの送信者、EventArgs e) in LoginForm.ascx.cs :91 System.Web.UI.WebControls.Button.OnClick(EventArgs e) +9553178 System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +103 System.Web.UI.

Web.Config の関連領域:

 <system.web>
        <membership defaultProvider="MembershipProvider">
            <providers>
                <clear />
                <add name="MembershipProvider"
                     type="ProprietaryMembershipAPIName1, ProprietaryMembershipAPIName2"
                     connectionStringName="ConnectionStringToRemoteDB1" enablePasswordRetrieval="false" enablePasswordReset="true"
                     requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5"
                     minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
                     applicationName="RemoteAppName" />
            </providers>
        </membership>
    </service.web>
    <system.serviceModel>
        <bindings>
    <netTcpBinding>
                <binding name="MembershipProvider_NetTcpBinding" closeTimeout="00:01:00"
            openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
            transactionFlow="false" transferMode="Buffered" transactionProtocol="OleTransactions"
            hostNameComparisonMode="StrongWildcard" listenBacklog="10"
            maxBufferPoolSize="524288" maxBufferSize="65536" maxConnections="10"
            maxReceivedMessageSize="65536">
                    <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
              maxBytesPerRead="4096" maxNameTableCharCount="16384" />
                    <reliableSession ordered="true" inactivityTimeout="00:10:00"
              enabled="false" />
                    <security mode="None">
                        <transport clientCredentialType="Windows" protectionLevel="EncryptAndSign" />
                        <message clientCredentialType="Windows" />
                    </security>
                </binding>
            </netTcpBinding>
        </bindings>
<client>
            <endpoint address=""
                binding="netTcpBinding" bindingConfiguration="Membership_NetTcpBinding"
                contract="MembershipProviderService.MembershipService" name="Membership_NetTcpBinding" >

            </endpoint>
</client>

ConnectionStringToRemoteDB1 の資格情報を介して DB にリモート アクセスできます。「MembershipProviderService.MembershipService」と関連する API は、データベースからリモート アドレスを取得してメンバーシップ プロバイダーに提供するように設計されていると言われています。

これが機能しないと叫ぶここの構成に関する問題を誰かが見ていますか? これは構成要素が欠落しているように感じますが、VPN 経由でドメイン間でサービスを利用すると、問題が何であるかを知るのが難しくなります. 事前にご提案いただきありがとうございます。

4

1 に答える 1

1

発生したエラーは、web.config の次の行が原因です。

<endpoint address=""

例外として、WCF クライアントを作成しようとしていることが正確に書かれています。

System.ServiceModel.ClientBase`1..ctor(String endpointConfigurationName, String remoteAddress)

また、空/null アドレスを渡すことはできません。

于 2013-04-24T19:10:02.787 に答える