jquery コードを WCF で動作させようとしています。私は非常に単純なことから始めています。WCF サービスは IIS でホストされます。シンプルなインターフェースとシンプルな実装を備えています。以下は私のWCFコードです。
[ServiceContract]
public interface IEvalService
{
[OperationContract]
[WebInvoke(Method = "GET", UriTemplate = "GetId",
RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
string GetId();
}
上記のインターフェイスの実装は次のとおりです。
[AspNetCompatibilityRequirements(RequirementsMode=
AspNetCompatibilityRequirementsMode.Allowed)]
public class EvalService: IEvalService
{
public string GetId()
{
BenchMarkStatus benchMarkStatus = new BenchMarkStatus();
return benchMarkstatus.Name;
}
}
もちろん、次のようなbenchMarkクラスがあります。
[DataContract]
public class BenchMarkStatus
{
private string _name;
public BenchMarkStatus()
{
_name = "Sudarshan";
}
[DataMember]
public string Name
{
get
{
return _name;
}
set
{
_name = value;
}
}
}
Web サービスの構成ファイルは次のとおりです。
<services>
<service name="BenchMarkServiceLiabrary.EvalService">
<endpoint address="10.66.26.171"
binding="webHttpBinding"
contract="BenchMarkServiceLiabrary.IEvalService"
behaviorConfiguration="WEB" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="WEB">
<webHttp helpEnabled="true" defaultOutgoingResponseFormat="Json"/>
</behavior>
</endpointBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true"
aspNetCompatibilityEnabled="true" />
クライアント側には、次のコードがあります。
$.ajax({
type: 'GET',
url: "http://10.66.26.171/EvalService/Eval.svc/GetId?callback=?",
contentType: "json/application; charset=utf-8",
dataType: "jsonp",
jsonpCallback: 'jsonCallback',
success: function (data) { alert(data) }
});
function jsonCallback() {
alert("me");
}
404 エラーが発生します。最初はクロス ドメインに問題がありましたが、現在はクライアント コードから GetId 関数にアクセスできません。誰か助けてくれませんか?