問題タブ [webhttpbinding]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
wcf - エンドポイントごとに異なる ListenUri を使用するように、2 つのエンドポイントを持つ WCF サービスを構成するにはどうすればよいですか?
webHttpBinding
を使用してエンドポイントを公開し、WPF と ASP.NET アプリケーションの両方で消費されるWCF サービスがあります。すべてがうまく機能します。
現在、Windows Phone (WP7) からサービスを利用しようとしています。ただし、.NET Framework はまだ WP7 に完全に追いついていないため、System.ServiceModel.Web
名前空間が使用できwebHttpBinding
ず、WP7 では機能しません。
さて、私のサービスでは、 を に切り替えるwebHttpBinding
とbasicHttpBinding
、電話アプリケーションが動作します。
ただし、使用するために WPF および ASP.NET アプリケーションを作り直す必要はありませんbasicHttpBinding
。
webHttpBinding
WCF が複数のバインディングをサポートできることを理解しており、との両方のエンドポイントを公開するようにサービスを構成して実行しようとしましたbasicHttpBinding
。サービスは正常に起動しているようです。ただし、WPF および ASP.NET アプリケーションはアクセスできません。WP7 アプリケーションでサービス参照を作成しようとすると、次のメッセージが表示されます。
バインド インスタンスは、リッスン URI 'http://localhost:1726/GeneralService.svc' に既に関連付けられています。2 つのエンドポイントが同じ ListenUri を共有する場合は、同じバインディング オブジェクト インスタンスも共有する必要があります。競合する 2 つのエンドポイントは、AddServiceEndpoint() 呼び出し、構成ファイル、または AddServiceEndpoint() と構成の組み合わせで指定されました。
baseAddress
同僚と私は、 、address
、およびlistenUri
属性にさまざまな変更を加えてみましたが、うまくいきませんでした。私たちは現在、試行錯誤の段階にあり、あまり効果的であることが証明されていません.
wcf - REST サービスでの WCF Windows 認証の問題
Windows 認証で実行するように WCF サービスをセットアップするのに苦労しています。このサービスは、ajax を使用した jQuery 経由でのみ使用されます。
IIS (サーバー 2003 のバージョン 6) は、Windows 認証のみを許可するように設定されています。
web.config には<authentication mode="Windows" />
タグがあります。
web.config のサービス セクションは次のとおりです。
インターフェイスは次のようになります。
そして実装:
Internet Explorer でサービスに移動すると、Windows 認証がオンになっているにもかかわらず、ユーザー名とパスワードの入力を求められます。
匿名認証を有効にするとすぐに、サービスが正常に読み込まれ、すべてが機能します。問題は、匿名をオフにする必要がある Web アプリケーションで他のことが起こっていることです。
私はウェブを精査しましたが、この問題について何も見つかりません。
wcf - webHttpBindingエンドポイントは、bindingNamespace属性が除外されている場合、WSDLにtemuri.org名前空間を追加します
SOAPエンドポイント(wsHttpBinding)とRESTエンドポイント(webHttpBinding)を介して公開する必要があるWCFサービスがあります。バージョン管理を支援するために、関連する属性に名前と名前空間を含めました(tempuri.orgはWSDLから完全に削除する必要があります)。何らかの理由で、webHttpBindingエンドポイントにbindingNamepace属性を追加しないと、WSDLにtempuri.org名前空間が追加されます。WSDL出力の例を以下に示します。
bindingNamespaceのないWSDL-
bindingNamespaceを使用したWSDL-
これがエンドポイントのweb.Configです。WCFExtrasを使用してWSDLをフラット化します(したがって、wsHttpBindingエンドポイントのbehaviorConfiguration)が、それがなくても動作は同じです。
ソリューションにWCFExtrasをロードし、WsdlExporterを調べて、tempuri.orgの言及が成功しないかどうかを確認しました。また、XSharper.Coreを使用してオブジェクトグラフをダンプし、それが見つかるかどうかを確認しました。ありません。
誰かがこれを以前に経験したことがありますか?回避策として、WSDLをクリーンに保つためにwebHttpBindingエンドポイントにbindingNamespaceを含めますが、これが発生する理由を知りたいと思います。
ありがとう!
channelfactory - WebHttpBinding を持つ ChannelFactory は、ServiceContract OperationContract の実行中に常に POST します。
WebServiceHost を介してホストされているサービスがあり、一部の呼び出しを Web 上の他の REST サービスに委任する必要があります。
これを処理するために ClientBase 具象クラスを作成しました。フローは次のようになります。
http://localhost:8000/users/my@email.com -> My WebServiceHost インスタンス -> ClientBase -> REST サービス
ClientBase からのすべての呼び出しが動詞として POST を使用していることに気付くまで、すべてがうまく機能していました。ClientBase でばかげたことをしていないことを確認するために、ChannelFactory を手動で作成し、それを使用しました。残念ながら、ClientBase、ChannelFactory、さらには ServiceContract の装飾に関係なく、すべての呼び出しで POST が使用されていました。
次に、コードの分離を開始し、WebServiceHost が処理していた要求内から元の呼び出しが来ていないときに、単純な ChannelFactory が機能することに気付きました。
これは正確な問題を示す抽出された Program.cs です。Program.Main からの MakeGetCall() は意図したとおりに機能しますが、MyService.GetUser からの呼び出しは常に POST します。
asp.net - 構成がweb.configに追加されると、webHttpBindingを使用するWCFサービスが機能しない
IIS上でRESTfulサービスとして実行したい非常に基本的なWCFサービスがあります。これがサービス契約です。
このコントラクトを実装するクラスがありStopMotion.Business.WCFService.RestCameraWs
ます。次に.svc
、次のマークアップを使用してWebプロジェクトにファイルを追加しました。
このサービスURLに移動すると、サービスのホームページとwsdl定義へのリンクが表示されます。しかし、web.config
ファイルに構成を追加してこのサービスを構成すると、 webHttpBinding
IISExpressから次のエラーページが表示されます。
最初に、私は構成に何か問題があると思いました。後で構成を削除し、svcファイルのファクトリを次のように変更しました
WebServiceHostFactory
はデフォルトで使用すると言われてwebHttpBinding
おり、さらに何かが必要でない限り、これを構成に追加する必要はありません。ただし、ファクトリを変更すると、IISExpressでも同じエラーページが表示されました。
ここで何が起こっているのかアイデアはありますか?
asp.net - WCF webHttpBinding out パラメーターのサポート
を使用して最初の wcf サービスを作成していwebHttpBinding
ます。ネットでは、で説明されているように、Web サービスでパラメーターを使用するのは悪い習慣であると伝える多くの記事を読みました。
WCF サービスのメソッドに出力パラメーターを含めるのは悪い習慣ですか?
SOAP シナリオで out パラメータを使用する場合があります。wsdl から生成されたクライアント定義は、ここで説明されているようにパラメーターの順序を変更します
http://social.msdn.microsoft.com/Forums/en/wcf/thread/48b5992f-f7bd-4b67-8299-514d1780fa9a
私が信じるようになったのはOUT パラメーターは REST (webHttpBinding) では使用できません。誰かがこれを確認または否定できますか?
wcf - RESTful WCF サービスの RequestWrapper の実装
タイプの単一のメソッドを含むRequestWrapperという単純なオブジェクトを作成しました。
try..catch
エラー処理、ロギング、データベース接続、トランザクション(コミットとロールバック)などであらゆるアクションをラップします。
現在、私は次のように使用しています:(例、本番コードではありません)
RESTful Web サービスのすべてのメソッドをラップするだけです (WCF とWebHttpBindingを使用)。
私の質問は次のとおりです。自動的にラッピングを行う動作をどのように実装すればよいですか? 出来ますか?
wcf - MaxConcurrentCalls の WCF キューの動作
次の設定の WCF サービスがあります。
- バインディング = WebHttpBinding
- InstanceContextMode = シングル
- ConcurrencyMode = 複数
- MaxConcurrentSessions = 高い値
ドキュメントには、MaxConcurrentCalls について記載されています。MaxConcurrentCalls プロパティは、ServiceHost オブジェクト全体でアクティブに処理されるメッセージの最大数を指定します。各チャネルには、処理が開始されるまで MaxConcurrentCalls の値に対してカウントされない保留中のメッセージが 1 つある場合があります。
いくつかの質問:
- 「各チャネルは、処理を開始するまで MaxConcurrentCalls の値に対してカウントされない保留中のメッセージを 1 つ持つことができます」という文は正確にはどういう意味ですか?
- MaxConcurrentCalls tresshold に達した場合、新しい TCP 接続はキューに入れられますか?
- MaxConcurrentCalls tresshold に達した場合、既存の TCP 接続の新しい要求は (パイプライニング中に) キューに入れられますか?
- これらのキューの長さを指定する方法は?
ありがとう!
レネ
wcf-rest - wcf restful サービスでの長い計算
私はWCFの安らかなサービスを持っていて、それは正しく動作します.問題は、サービスが「計算」メソッドを公開し、計算を完了するのに数分かかる場合があることです.RESTはステートレスメソッドであるため、アイデアが不足しています!
セッションを維持する必要がありますか?
コールバックを行うにはどうすればよいですか?
Web サイトで応答を 10 分間待つのは不便ですが、解決策を見つけなければなりません。
PS: サービスは安らかでなければならず、計算時間を短縮することはできません。