0

json 応答を返す wcf rest サービスで問題に直面しています。ローカルの IIS-Web サーバーで Visual Studio 2010 でサービスを実行すると、完全に機能しました。

しかし今、IIS 7.5 を搭載した Windows Server 2008 R2 で同じ web.config を使用して同じサービスを実行しています。

*http://localhost/EchoService/EchoService.svc/echo/123

jsonの結果は返されませんが、jsonの結果が含まれる不明なファイルタイプのダウンロードダイアログが表示されます。

最初に、問題はWebサーバーがjson MIMEタイプを認識していないことだと思ったので、次のように追加しました:

拡張子: .json

MIME タイプ:アプリケーション/json

エントリータイプ:ローカル

しかし、それは問題を解決しませんでした。結果をファイルとして返すのに、ファイルの種類がわからない理由を教えてください。

これが私のweb.configです:

<?xml version="1.0" encoding="UTF-8"?>
   <configuration>
      <system.serviceModel>
         <services>
            <service name="wcf_iis_proto_1.EchoService">
               <endpoint address="" binding="webHttpBinding" contract="wcf_iis_proto_1.IEchoService" behaviorConfiguration="webEcho" />
            </service>
         </services>
         <behaviors>
            <endpointBehaviors>
               <behavior name="webEcho">
                  <webHttp />
               </behavior>
            </endpointBehaviors>
         </behaviors>
    </system.serviceModel>
</configuration>

そして、これが私のサービスコントラクトです(および名前空間の使用は省略されています):

public interface IEchoService
{
   [OperationContract]
   [WebGet(UriTemplate = "/echo/{message}", ResponseFormat = WebMessageFormat.Json)]
   string EchoMessage(string message);
}

およびサービスの実装:

public class EchoService: IEchoService
{
    public string EchoMessage(string message)
    {
       return "Hey Buddy. You said: " + message + "!";
    }
 }

あなたが私を助けてくれることを願っています。ありがとう!!!

4

1 に答える 1

0

お使いのブラウザで予期される動作である可能性があります。Json をダウンロードするタイプと見なします。これを回避するには、「text/plain」に応じてコンテンツ タイプを変更する必要があります。ここでは、これを行う方法について説明しました。

于 2012-08-28T18:29:15.477 に答える