4

WCF テスト クライアントからアプリケーションを実行しようとすると、次のエラーが表示されます。

エラー: http://localhost:53867/MyAPI.svcからメタデータを取得できませんこれがアクセス権のある Windows (R) Communication Foundation サービスである場合は、指定されたアドレスでのメタデータ公開が有効になっていることを確認してください。メタデータの公開を有効にする方法については、http: //go.microsoft.com/fwlink/ ?LinkId=65455.WS-Metadata Exchange Error URI: http://localhost:53867/MyAPI.svc メタデータに含ま
れる MSDN ドキュメントを参照してください。解決できない参照: 'http://localhost:53867/MyAPI.svc'。 コンテンツ タイプ application/soap+xml; charset=utf-8 はサービスhttp://localhost:53867/MyAPI.svcでサポートされていませんでした。 クライアントとサービスのバインディングが一致していない可能性があります。




リモート サーバーからエラーが返されました: (415) サポートされていないメディア タイプ.HTTP GET エラー
URI: http://localhost:53867/MyAPI.svc
HTML ドキュメントに Web サービス検出情報が含まれていません。

これが私のweb.configの一部です:

    <system.web>
    <compilation debug="true" targetFramework="4.0">
        <assemblies>
            <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
        </assemblies>
    </compilation>
    <membership defaultProvider="CustomMembershipProvider">
        <providers>
            <clear/>
            <add name="CustomMembershipProvider" type="Namespace.Models.MyMembershipProvider" />
        </providers>
    </membership>
</system.web>
<system.serviceModel>
    <bindings>
        <wsHttpBinding>
            <binding name="MembershipBinding">
                <security mode ="Message">
                    <message clientCredentialType="UserName"/>
                </security>
            </binding>
        </wsHttpBinding>
    </bindings>
    <behaviors>
        <serviceBehaviors>
            <behavior name="MyServiceBehavior">
                <serviceCredentials>
                    <userNameAuthentication
                    userNamePasswordValidationMode="MembershipProvider"
                    membershipProviderName="CustomMembershipProvider" />
                </serviceCredentials>
            </behavior>
        </serviceBehaviors>
    </behaviors>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" aspNetCompatibilityEnabled="true" />
</system.serviceModel>

何が原因なのかわかりませんか?私のメンバーシップ プロバイダーはその場所にあり、正しい名前空間を持っています。

4

1 に答える 1

6

から name 属性を削除します

   <behavior name="MyServiceBehavior"> 

そしてから

   <binding name="MembershipBinding">

serviceMetadata 要素を追加します

    <behaviors>
        <serviceBehaviors>
            <behavior>
                <serviceMetadata httpGetEnabled="True"/>
                <serviceCredentials>
                <userNameAuthentication
                    userNamePasswordValidationMode="MembershipProvider"
                    membershipProviderName="CustomMembershipProvider" />
                </serviceCredentials>

            </behavior>
        </serviceBehaviors>
    </behaviors>
于 2012-04-17T14:25:12.157 に答える