我在我的wcf rest服務中遇到了一個問題,返回一個json響應。在我的本地IIS Webserver上運行Visual Studio 2010中的服務完美運行。未知的文件類型爲wcf休息服務json響應在iis 7.5
但現在I'm運行在Windows Server上的同一web.config中的相同服務2008 R2與IIS 7.5,當I'm通過
調用服務* HTTP://本地主機/ EchoService的/ EchoService的.svc/echo/123
它不返回json結果,而是下載帶有json結果的未知文件類型的對話框。
首先,我認爲問題是,Web服務器不知道JSON的MIME類型,所以我添加了它:
擴展:以.json
MIME-類型:應用/ JSON
條目類型:本地
但didn't解決問題。你能告訴我爲什麼它將結果作爲文件返回並且不知道文件類型嗎?
Here's我的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 + "!";
}
}
我希望你能幫助我。謝謝!!!
我通過fiddler訪問了服務,它按照我的意願得到了預期的json結果。我仍然想知道爲什麼它在我的本地IIS上託管時在瀏覽器中工作,但它並不重要,因爲我想通過應用程序訪問數據。 謝謝! Philipp –
順便說一句。 Firefox正確顯示結果。必須與Http Accept Header有關。 –