2011-10-27 12 views
1

私はアドレスについて思ったんだけど=「」セクションweb.configファイル内WCFの基本 - エンドポイント

<services> 
    <service behaviorConfiguration="MyServiceTypeBehaviors" name="user"> 
    <endpoint address="" behaviorConfiguration="ptUserAspNetAjaxBehavior" binding="webHttpBinding" contract="IUser" /> 
    </service> 
</services> 
<services> 
    <service behaviorConfiguration="MyServiceTypeBehaviors" name="controller"> 
    <endpoint address="" behaviorConfiguration="ptUserAspNetAjaxBehavior" binding="webHttpBinding" contract="Icontroller" /> 
    </service> 
</services> 

私はjQueryを経由して呼び出すことになる第2のサービスを追加しています。私の最初のサービスは素晴らしい仕事でした。あなたが見ることができるように、エンドポイントアドレスは空白です。私は2番目のサービスを追加しています。私はそれを正しくやっているのですか?同じbehaviorConfigurationとバインディングを使用して契約を変えて新しいサービスタグを作成できますか?

これは、web.configファイルのアドレスに関する別の質問を生成しました。

なぜそれが動作していて、なぜ私はアドレスを使用したいのですか?

答えて

3

は、それはあなたがIISでサービスをホストし、基本的にはIISの仮想ディレクトリは、あなたのサービスのURL(あなたの*.svcファイルが存在する仮想ディレクトリ)を指示するとき

  • address=""で動作します。したがって、2つの別々のサービスがあり、2つの別々のファイルがある場合は、設定内の各エントリはaddress=""の設定を持つことができます。しかし、あなたはは、同じサービスのための2つのエンドポイントを持つことができないとの両方が空のアドレス属性に

か持っている:あなたはあなたの設定でサービスので、そのエンドポイントの意志のために定義されたベースアドレスを持っている

  • をそのサービスアドレスのベースアドレスを使用してください
+0

marc_s - そのきれいな答えをありがとう。わかりやすくするために、今私が扱っているサービスはローカルで、あなたの答えからエンドポイントアドレス= ""を持つことができます。これを私の共有サーバーに移動すると、アドレス= ""で動作しますか、それともhttp://www.domain.com/services/service.svcに変更する必要がありますか? – webdad3

+1

@JeffV:あなたがホストしている限りそれはあなたの共有サーバ上のIISの中にあります。IISと '* .svc'ファイルが存在する仮想ディレクトリがサービスアドレスを決定するので、あなたはまだ' address = "" 'を持つことができます –

関連する問題