こんにちは現在、FW3.5でレガシーWCFサービスを利用しています。いくつかのSilverLigtアプリケーションを使用して、JSON形式をサポートするためにこのWCFサービスを拡張し、JavaScriptアプリケーション用に呼び出す必要があります。現在のサービスは次のようになります。
[ServiceContract(Namespace = "")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class Alcatraz
{
[OperationContract]
[FaultContract(typeof(SomeError))]
public SomeClass DoSomething(SomeClass data)
{
}
}
WCFサービスのJSON形式のサポートについて知っているので、メソッドにWebInvoke属性を追加する必要があります
[WebInvoke(Method = "GET",
RequestFormat = WebMessageFormat.Json,
ResponseFormat = WebMessageFormat.Json,
UriTemplate = "players")]
SomeClassクラスに[DataContract]
属性を追加します。しかし、これを追加した場合、すべてのアプリケーションが同じように機能するかどうかはわかりませんか?
<system.serviceModel>
<extensions>
<behaviorExtensions>
<add name="silverlightFaults" type="myNS.WCF.SilverlightFaultBehavior, SilverlightFaultBehavior, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"/>
</behaviorExtensions>
</extensions>
<bindings>
<customBinding>
<binding name="binaryHttpBinding" allowCookies="true" receiveTimeout="00:02:00" sendTimeout="00:02:00" openTimeout="00:02:00" closeTimeout="00:02:00">
<binaryMessageEncoding/>
<httpTransport maxReceivedMessageSize="655360" maxBufferSize="655360"/>
</binding>
</customBinding>
</bindings>
<behaviors>
<endpointBehaviors>
<behavior name="SilverlightFaultBehavior">
<silverlightFaults/>
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="myNS.WCF.MyServiceBehavior">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
<services>
<service behaviorConfiguration="myNS.WCF.MyServiceBehavior" name="myNS.WCF.MyService">
<endpoint address="" binding="customBinding" bindingConfiguration="binaryHttpBinding" contract="myNS.WCF.MyService" behaviorConfiguration="SilverlightFaultBehavior"/>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
</service>
</services>
</system.serviceModel>
他のクライアントとの互換性を保つために何をする必要がありますか?