1

WCFを使用してカスタムASP.NETフォーム認証サービスを作成しようとしています。1行のJSのみを含むテストページを介して呼び出しています(ScriptManagerスクリプトを除く)。問題は、サーバーが応答コード500を返し、応答本体が空であることです。serviceメソッドとGlobal.asaxのApplication_Errorのブレークポイントがヒットしていません。

Sys.Services.AuthenticationService.login('user', 'pass', false, null, null, null, null, null);

次のリクエスト本文を使用して、ブラウザツールでサーバーにリクエストが送信されるのを確認できます。

{"userName":"user","password":"pass","createPersistentCookie":false}

リクエスト側の他のものも問題ないようです。

構成サービスは次のとおりです。

<system.serviceModel>
  <behaviors>
    <endpointBehaviors>
      <behavior name="BtxAuthenticationEndpointBehavior">
        <webHttp/>
      </behavior>
    </endpointBehaviors>
    <serviceBehaviors>
    </serviceBehaviors>
  </behaviors>
  <services>
    <service name="MyNamespace.BtxAuthenticationService">
      <endpoint contract="MyNamespace.IBtxAuthenticationService" binding="webHttpBinding" behaviorConfiguration="BtxAuthenticationEndpointBehavior"/>
    </service>
  </services>
</system.serviceModel>

そして、インターフェースの宣言:

[ServiceContract]
public interface IBtxAuthenticationService
{
    [OperationContract]
    [WebInvoke]
    bool Login(string username, string password, bool createPersistentCookie);

    [OperationContract]
    [WebInvoke]
    void Logout();
}

実装:

public class BtxAuthenticationService : IBtxAuthenticationService
{
    public bool Login(string username, string password, bool createPersistentCookie)
    {
        ... irrelevant because this is never hit
    }

    public void Logout()
    {
    }
}

誰かがこれを構成する方法を教えてもらえますか、それをデバッグする方法を教えてもらえますか?WCFサービスを使用したカスタムフォーム認証の実装に関する記事も歓迎します。見つけたすべての例外の詳細設定を含む他のさまざまな設定を試してみましたが、進行できませんでした(ただし、いくつかのリグレッションを実行し、エンドポイントの欠落などのさまざまな例外を取得できました)。

お時間をいただきありがとうございます。

4

1 に答える 1

1

これが役立つかどうかはわかりません。私はそのようなサービスを書いたことはありませんが、あなたの構成は ASP.NET AJAX 対応ではなく、JSON の代わりに XML で動作する WCF サービスを作成します。webHttp 動作の代わりにこれを使用してみてください:

<endpointBehaviors> 
  <behavior name="BtxAuthenticationEndpointBehavior"> 
    <enableWebScript /> 
  </behavior> 
</endpointBehaviors>  
于 2010-10-04T16:43:52.580 に答える