2

.NET 4.0 Web アプリケーション プロジェクト内に WCF エンド ポイントがあります。VS2010 WCF テスト クライアントを使用すると、サービスに正しく接続できます。ただし、サービスを使用すると、一般的なエラー メッセージが表示されます。

コンテンツ タイプ text/html。応答メッセージの charset=UTF-8 がバインディングのコンテンツ タイプ (text/xml; charset=utf-8) と一致しません。カスタム エンコーダーを使用する場合は、IsContentTypeSupported メソッドが適切に実装されていることを確認してください。応答の最初の 1024 バイトは次のとおりです。

web.config ファイルから認証を削除すると、サービスが正しく機能することがわかりました。

<authentication mode="Forms">
  <forms cookieless="AutoDetect" loginUrl="~/Security/LoginClient.aspx" name="FORMAUTH" />
</authentication>

このサービスだけを認証から削除する方法はありますか?

4

1 に答える 1

3

web.config の場所ノードを使用して、フォーム認証から特定のファイルを除外できます。

<location path="MyService.svc">
   <system.web>
      <authorization>
          <allow users="*" />
      </authorization>
   </system.web>
</location>

簡単な方法は、認証を必要としないサービス関連ファイルをパブリック フォルダーにグループ化し、フォルダー全体へのアクセスを許可することです。

<location path="MyServiceFolder/">
   <system.web>
      <authorization>
         <allow users="*" />
      </authorization>
   </system.web>
</location>

MSDN の location 要素の詳細:

http://msdn.microsoft.com/en-us/library/b6x6shw7%28vs.71%29.aspx

于 2011-04-08T10:57:42.810 に答える