0

WCF プロジェクトを IIS にデプロイしました。

ただし、サービス参照をテスト プロジェクトに追加しようとすると、Visual Studio は次のように表示します。

The document was understood, but it could not be processed.
  - The WSDL document contains links that could not be resolved.
  - There was an error downloading 'http://server1.local/WCFServices/serv1/serv1.svc?xsd=xsd0'.
  - The underlying connection was closed: An unexpected error occurred on a receive.
  - Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host.
  - An existing connection was forcibly closed by the remote host
    Metadata contains a reference that cannot be resolved: 'http://server1.local/WCFServices/serv1/serv1.svc?wsdl'.
    Content Type application/soap+xml; charset=utf-8 was not supported by service http://server1.local/WCFServices/serv1/serv1.svc?wsdl.  The client and service bindings may be mismatched.
The remote server returned an error: (415) Cannot process the message because the content type 'application/soap+xml; charset=utf-8' was not the expected type 'text/xml; charset=utf-8'..
If the service is defined in the current solution, try building the solution and adding the service reference again.

それで、私がちょっと得た問題があります。サービスのコンテンツ タイプが、クライアントが期待するものと一致しません。

それで、どうすれば修正できますか?

4

2 に答える 2

1

クライアントの App.Config または Web.Config を確認し、ServiceModelを確認します。ほとんどの場合、WCF サービスが送信しているものとは異なるcustomBindingが存在します。

于 2012-08-15T11:30:21.043 に答える
1

これは、Google がこのエラーに対して表示する最初の投稿であるため、私のソリューションに参加したいと思います。

正常に動作していたシステムでコードを変更しているときに同様のエラーが発生しましたが、開発システムで参照を更新できませんでした。参照はsilverlightプロジェクト内にあり、周囲のWebサイトに統合されたWCFに関連しています(標準的な構成だと思います)。私のエラー メッセージには、「WCF メタデータには、解決できない参照が含まれています: 'おかしなパス' が含まれています。応答メッセージのコンテンツ タイプ text/html; charset=utf-8 は、バインディングのコンテンツ タイプ (アプリケーション/soap) と一致しません。 +xml; charset=utf-8)」。私のウェブサイトは承認の役割を使用しています。これが問題/解決策の基になっています。サービス参照を更新するには、すべてのユーザーを許可する必要がありました。

<?xml version="1.0"?>
<configuration>
    <system.web>
        <!--<authorization>
            <allow users="*"/>            
        </authorization>-->
        <authorization>
            <deny users="?"/>
            <allow roles="role-1,role-2"/>
            <deny users="*"/>
        </authorization>
    </system.web>
</configuration>
于 2014-10-20T13:38:20.513 に答える