私は現在、Entity FrameworkでWCF Data Services(まあ、ADO.Net Data Services)を使用しており、POSTを実行すると次のエラーが発生します(無関係な情報を省略/変更しました):
<?xml version="1.0" encoding="utf-8"?><m:error xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"><m:code /><m:message xml:lang="en-GB">The URI 'http://localhost:56568/MyWcfDataServices.svc/EntitySetName(pk_id)' is not valid for POST operation. For POST operations, the URI must refer to a service operation or an entity set.</m:message></m:error>
オンラインで調べてみると、このメッセージに関する多くの情報が見つからないため、デバッグが少し困難です。私が投稿している属性の 1 つが大きな base64 文字列であるため、これが発生している可能性があります (これを投稿しなくても問題なく動作します)。を次のように設定してみましmaxRequestLength
た:
<httpRuntime maxRequestLength="102400" />
しかし、それは役に立たなかったようです。私はこれに取り組み続けますが、ここに簡単な投稿をして、誰かが何かを知っているかどうかを確認したいと思いました.
私の WCF Data Service クラスは次のようになります。
public class MyWcfDataServices: DataService<ContextName>
{
public static void InitializeService(DataServiceConfiguration config)
{
// set entity access rules etc
}
}
ありがとう
編集:これでどこにも行けないようです。これが私がこれまでに試したことです。
サーバー側では、次のバインディングを設定しました。
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"
minFreeMemoryPercentageToActivateService="0" />
<services>
<service name="MyWcfDataServices"
behaviorConfiguration="myBehaviorConfig">
<endpoint address=""
binding="webHttpBinding"
bindingConfiguration=""
contract="System.Data.Services.IRequestHandler" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="myBehaviorConfig">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
<dataContractSerializer maxItemsInObjectGraph="2147483647" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
maxItemsInObjectGraph
属性が解決策になることを願っています。これらのバインディングは正しく見えますか? サーバーにより多くのデータを POST できるようにする属性が不足していますか? クライアントでもこのサービスの動作を構成する必要がありますか?