2009-11-24 2 views
0

WCF 웹 서비스를 자체 호스팅하고 Ajax 지원이있는 HTTP 끝점을 제공하려고합니다. WCF와 AJAX에 관한 많은 것들이 IIS에 관한 이야기입니다. IIS는 사용하고 싶지 않습니다.AJAX 클라이언트 용 자체 호스팅 WCF

나는 서비스를 호스팅 할 간단한 콘솔 앱을 만들었습니다. ,

<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을 볼 수 있습니다 내 서비스는 하나의 방법이 있습니다

[ServiceContract] 
interface IMyService 
{ 
    [OperationContract] 
    string TestConnection(); 
} 

을 그리고 여기의 app.config의 코드는 하지만 내 아약스 클라이언트에서 사용할 수 없습니다. 그래서 내 질문은 : 1. 이것을 할 수 있습니까? 2. 분명히 누락 된 필요한 구성은 무엇입니까?

참고 내가 SVC는 파일

감사를 사용하지 않는!

+0

클라이언트가 웹 브라우저에서 실행 중입니까? 그렇다면 브라우저의 도메인 간 XHR 제한이 적용될 수 있습니다. – alexdej

+0

네, 이것이 제 문제 중 하나였습니다! – subb

답변

1

클라이언트가 무엇입니까? enableWebScript를 사용하면 ASP.NET AJAX를 지원하게됩니다 (예 : 데코레이션 된 멤버, 유형 및 그 밖의 모든 의미). "원시"JSON을 사용하려면 enableWebScript 대신 webHttp 비헤이비어를 사용하고 WebInvokeAttribute 또는 WebGetAttribute로 인터페이스 작업에 태그를 답니다 (원하는대로 JSON 또는 XML에 요청/응답 유형 설정). 또한 ServiceContractAttribute 인터페이스가 필요하지 않은 것처럼 보입니다.

+0

감사합니다. – subb

관련 문제