6

Javascript プロキシがクライアント (jsdebug/js) で作成されるように、enableWebScript エンドポイント動作を使用してエンドポイントの 1 つで複数のエンドポイントを持つ WCF サービスをセットアップしようとしています。

サービス参照を AJAX ScriptManager に追加すると、エンドポイントのアドレスが空白でない限り、jsdebug ファイルが見つかりません。ScriptManager プロキシは、サービスのアドレスが「ajax」であっても、ファイルを探すために常に「MyService.svc/jsdebug」のパスを生成するようです。プロキシは、「MyService.svc/ajax/jsdebug」としてパスを生成する必要があります。

正しいパスで生成されたプロキシを取得する設定はありますか? 私のサービスは私のウェブサイトのルートにあります。

作品:

<endpoint address="" 
  behaviorConfiguration="ajaxBehavior" 
  binding="webHttpBinding" 
  bindingConfiguration="webBinding" 
  contract="MyTest.Web.ICustomerService" />

これが欲しい(動作しません):

<endpoint address="ajax" 
  behaviorConfiguration="ajaxBehavior" 
  binding="webHttpBinding" 
  bindingConfiguration="webBinding" 
  contract="MyTest.Web.ICustomerService" />
4

2 に答える 2

2

<enableWebScript />AJAX 対応のエンドポイントとも呼ばれ、アドレスに関連するすべてのことを本質的にハードコーディングするため、クライアント側のコードを生成できます。

ハードコーディングされている方法は、すべてが .svc ファイルに直接関連していることです。

「方法: 構成を使用して ASP.NET AJAX エンドポイントを追加する」を参照してください。

エンドポイントは .svc ファイルに関連する空のアドレスで構成されているため、サービスが利用可能になり、要求を送信して呼び出すことができます 。service.svc/<operation>たとえば、 service.svc/Add操作のためAddです。

このため、 と混在<enableWebScript />させることはできませんUriTemplate。これは、私の意見では、WCF の楽しみの半分を奪います。enableWebScript、UriTemplate、および HTTP メソッドを参照してください。

個人的には、URI を構成して POX と JSON の両方、および SOAP を提供するのが好きです。WCF RESTful POX、JSON、および SOAP の共存を参照してください。

于 2009-03-28T04:30:57.110 に答える
1

ScriptManager で、MyService.svc の代わりに MyService.svc/ajax を配置します。

于 2009-08-12T00:23:07.483 に答える