0

我正在尝试自托管 WCF Web 服务并提供支持 ajax 的 HTTP 端点。我发现的关于 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 文件

谢谢!

4

1 回答 1

1

你的客户是什么?使用 enableWebScript,您将获得 ASP.NET AJAX 支持(例如,修饰的成员、类型以及所有其他暗示的内容)。如果您想要“原始” JSON,请使用 webHttp 行为而不是 enableWebScript,并使用 WebInvokeAttribute 或 WebGetAttribute 标记您的接口操作(根据需要将请求/响应类型设置为 JSON 或 XML)。看起来您还没有将您的接口与 ServiceContractAttribute 相关联,这是必需的。

于 2009-11-24T19:08:35.317 回答