ajax を wcf サービスに接続しています。しかし、許可されていないメソッドを取得し続けます。何日もデバッグしています。そして、私はそれを理解していません。デフォルトの GetData(int value) メソッドでテストしています。
アヤックス:
<script type="text/javascript" src="jquery-1.7.2.min.js"></script>
<script type="text/javascript">
$.ajax({
type: "POST",
url: "http://localhost:19478/Service1.svc/GetData",
data: JSON.stringify({"value": "test"}),
contentType: "application/json; charset=utf-8",
dataType: "jsonp",
success: function (msg) {
alert(msg);
},
error: function (msg) {
alert("Failed");
}
});
function OnSuccessCall(response) {
alert(response);
}
function OnErrorCall(response) {
alert(response.status + " " + response.statusText);
}
</script>
web.config:
<?xml version="1.0"?>
<configuration>
<appSettings>
<add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
</appSettings>
<system.web>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5"/>
</system.web>
<system.serviceModel>
<services>
<service name="WcfServiceTest.Service1" behaviorConfiguration="myServiceBehavior">
<endpoint name="webHttpBinding"
address="" binding="webHttpBinding"
contract="WcfServiceTest.IService1"
behaviorConfiguration="webHttp"
>
</endpoint>
<endpoint name="mexHttpBinding"
address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange"
/>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="myServiceBehavior" >
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
<behavior>
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="webHttp">
<webHttp/>
</behavior>
<behavior name="NewBehavior0">
<webHttp helpEnabled="true"/>
</behavior>
</endpointBehaviors>
</behaviors>
<protocolMapping>
<add binding="basicHttpsBinding" scheme="https" />
</protocolMapping>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="false" />
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
<!--
To browse web app root directory during debugging, set the value below to true.
Set to false before deployment to avoid disclosing web app folder information.
-->
<directoryBrowse enabled="true"/>
</system.webServer>
</configuration>
Iservice1:
[OperationContract]
[WebInvoke(Method="POST",
RequestFormat=WebMessageFormat.Json,
ResponseFormat=WebMessageFormat.Json)]
string GetData(String value);
サービス1:
public string GetData(String value)
{
return string.Format("You entered: {0}", value);
}
上には何もありませんpublic class Service1 : IService1
。上があり[ServiceContract]
ますpublic interface IService1
。
私は非常に多くのものを追加し、非常に多くのものを削除しました.. もうわかりません。私はそれが私のweb.configファイルであると思われますが、その部分はわかりません