【发布时间】:2012-03-30 08:21:18
【问题描述】:
我在网上看到了一堆示例,但对于该服务应该是独立的还是与消费应用程序在同一个解决方案中,我感到困惑。有人可以帮帮我吗?
是否需要将启用 AJAX 的 WCF 服务类型的文件添加到我的 ASP.NET Web 应用程序,或者我是否需要对我的 WCF 服务的 Web 服务引用?
当我使用 jQuery Ajax 函数时,有一个 URL 参数。我看到的所有示例都使用“
Services/MyService.svc/MyMethodName”。这是因为服务在 Web 应用程序的解决方案中吗?-
我的 WCF 服务是否必须:
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
-
我的网络服务调用是否需要具有以下属性?
[WebInvoke(方法 = "POST", BodyStyle = WebMessageBodyStyle.Wrapped, ResponseFormat = WebMessageFormat.Json)]
我的 Web 应用程序或我的 Web 服务是否需要将行为设置为
enableWebScript?
我是否遗漏了任何必需的属性或设置?
这是我的 Web 应用程序中的 jquery ajax 请求:
$.ajax({
type: "POST",
url: "http://myserver/myservice.svc/mymethod",
contentType: "application/json; charset=utf-8",
data: "{" + args + "}",
dataType: 'json',
});
这是我的网络服务 web.config:
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="Basic" />
</basicHttpBinding>
</bindings>
<services>
<service behaviorConfiguration="ServiceBehavior" name="MyServiceName">
<endpoint address="basic"
binding="basicHttpBinding"
bindingConfiguration="Basic"
name="Basic"
contract="IService" />
<endpoint address="web"
behaviorConfiguration="webHttpBehavior"
binding="webHttpBinding"
name="Web"
contract="IService" />
<endpoint address="mex"
binding="mexHttpBinding"
name="Metadata"
contract="IMetadataExchange" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="ServiceBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="webHttpBehavior">
<webHttp/>
</behavior>
</endpointBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>
【问题讨论】: