2009-11-24 110 views
0

我想自承載一個WCF Web服務,並提供一個HTTP端點與Ajax支持。幾乎我發現的有關WCF和AJAX的一切都在討論IIS,我不想使用它。自我託管WCF AJAX客戶端

我已經構建了一個簡單的控制檯應用程序來託管服務。我的服務只有一個方法:

​​

而這裏的代碼的app.config:

<services> 
    <service name="Service.MyService" behaviorConfiguration="MyServiceBehavior" > 
    <endpoint address="" binding="webHttpBinding" behaviorConfiguration="WebBehavior" contract="Service.IMyService" /> 
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> 
    </service> 
</services> 

<behaviors> 
    <endpointBehaviors> 
    <behavior name="WebBehavior"> 
     <enableWebScript/> 
    </behavior> 
    </endpointBehaviors> 
    <serviceBehaviors> 
    <behavior name="MyServiceBehavior" > 
     <serviceMetadata httpGetEnabled="true" /> 
    </behavior> 
    </serviceBehaviors> 
</behaviors> 

我可以訪問服務元數據終結,看到了WSDL,但我無法從我的ajax客戶端使用它。所以我的問題是: 1.是否可以做到這一點? 2.我明顯缺少的配置是什麼?

注意我不使用.svc文件

謝謝!

+0

客戶端是否在Web瀏覽器中運行?如果是這樣,你可能正在瀏覽器的跨域XHR限制。 – alexdej 2009-11-24 19:14:47

+0

是的,這是我的一個難題! – subb 2009-11-24 19:59:59

回答

1

你的客戶是什麼?使用enableWebScript,您將獲得ASP.NET AJAX支持(例如,裝飾的成員,類型以及所有其他含義)。如果您想要「原始」JSON,請使用webHttp行爲而不是enableWebScript,並使用WebInvokeAttribute或WebGetAttribute(根據需要將請求/響應類型設置爲JSON或XML)標記接口操作。它也看起來像你還沒有將你的接口歸類爲需要的ServiceContractAttribute。

+0

謝謝,它工作! – subb 2009-11-24 20:01:22