我正在尝试自托管WCF Web服务并为HTTP端点提供ajax支持。几乎我发现的关于WCF和AJAX的一切都在谈论IIS,我不想使用它。
我构建了一个简单的控制台应用程序来托管服务。我的服务只有一个方法:
[ServiceContract]
interface IMyService
{
[OperationContract]
string TestConnection();
}
这是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 :(得分:1)
你的客户是什么?使用enableWebScript,您将获得ASP.NET AJAX支持(例如,装饰成员,类型以及所暗示的所有其他goo)。如果需要“原始”JSON,请使用webHttp行为而不是enableWebScript,并使用WebInvokeAttribute或WebGetAttribute标记接口操作(根据需要将请求/响应类型设置为JSON或XML)。看起来您还没有将您的接口归因于ServiceContractAttribute,这是必需的。