問題タブ [basichttpbinding]

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.

0 投票する
2 に答える
30132 参照

php - Windows サービス内でホストされる WCF サービス (basicHttpBinding) の WSDL URL

サーバーの 1 つで、Windows サービスで WCF サービスをホストしています。basicHttpBinding で動作させ、.NET でテスト クライアントを構築した後 (最終的には動作しました)、SoapClient クラスを使用して PHP からアクセスしようとしました。最終的な消費者は PHP サイトになるので、PHP で消費できるようにする必要があります。

PHP コードの SoapClient クラスのコンストラクターに WSDL の URL を入力しなければならなかったとき、私は困惑しました。WSDL はどこにありますか? 私が持っているのは次のとおりです。

http://172.27.7.123:8000/WordServiceおよび http://172.27.7.123:8000/WordService/mex

これらのいずれも WSDL を公開しません。

WCF の初心者である私は、愚かなことを尋ねた可能性があります (または、どこかで間違った仮定をしている可能性があります)。優しくしてください :D

いいえ、 http://172.27.7.123:8000/ WordService?wsdl は http://172.27.7.123:8000/WordService異なるものを表示しません:(

IIS でホストする必要がありますか? 通常の WebService を使用する必要がありますか?

0 投票する
4 に答える
7071 参照

wcf - WCF ServiceHostbasicHttpBinding503エラー

Windows2007SP1サーバーでWCFServiceHostをNTサービスとして実行しようとしています。ServiceHostは、単一のサービスエンドポイントをホストする責任があります:次のアドレスを持つbasicHttpBinding:

このServiceHostをローカルマシン(Windows XP)で実行すると、正常に動作します。SOAPメッセージをPOSTすると、HTTP 202コード(「承認済み」)が返されます。これは、サービスの正しい応答です。契約にはIsOneWay=trueがあります。ただし、これを2007サーバーで実行すると、サービスを呼び出そうとすると503エラーが発生します。WCFメッセージのロギングを「ずっと上」にしたのですが、ロギングがまったく表示されないため、これはWCFよりも低いレベルで発生していると思います(呼び出しがWCFの「レイヤー」に到達することはありません)。 )。

sys-adminsと私はさまざまな形式のhttpcfgコマンドを試しましたが、今のところ運がありません。

これをIISでホストしようとすることが解決策になる可能性があることはわかっていますが、本番アプリサーバーにはIISがインストールされていないため、サービスをServiceHostとして実行したいと思います。

どんなアイデアでも大歓迎です!

0 投票する
2 に答える
709 参照

c# - WCF認証

.Net 3.5でいくつかのコアサービスを構築し、WCFを介してサービスを公開しています。サービスには、内部(つまり、イントラネット内)でのみアクセスされます。サービスは、呼び出し元のユーザーのWindowsクレデンシャルを認証し、AD/機能グループを取得する必要があります。

サービスは、NetTcpBindingおよびBasicHttpBindingを使用して公開する必要があります。

両方のバインディングタイプのセクションにどの構成を追加する必要がありますか?これだけですか:

そうですか?これは、NetTcpバインディングとBasicHttpバインディングの両方に適用されますか?

ありがとう

0 投票する
1 に答える
9958 参照

c# - プログラムで WCF EndpointAddress に ID を設定する

次の関数を使用しSystem.ServiceModel.EndpointAddressて、WCF サービスに接続するときにを作成しています。

EndPointIdentityweb.config からの次の抜粋と相関する を渡す必要があります。

私の WCF サービスは X509 証明書を使用しているため、ID のタイプは である必要があるようですX509CertificateEndpointIdentity。このためのコンストラクターでは、証明書を渡す必要があります...しかし、上記のように dns 値を渡したいです。

私のアプローチの何が問題なのか、誰かが提案できますか?

0 投票する
1 に答える
3577 参照

wcf - WCF/basicHttpおよびNTLM認証

NTLM認証がWCF/basicHttpでどのように機能するかを誰かが知っていますか?単一のサービスメソッド呼び出しごとにユーザー資格情報が渡されるのか、それとも後続のサービスメソッド呼び出しに何らかのセキュリティトークンが使用されるのか疑問に思います。

私が使用している正確なバインディング構成:

このタイプの構成は、MSDNリファレンスで見つかりました。しかし、これがパフォーマンスの面で良いアイデアかどうかはわかりません。別の方法は、カスタムGetAuthenticationToken()の種類のメソッドを提供して、クライアントの後続のすべての要求にセキュリティトークンを提供することです。これは、エンタープライズライブラリ-セキュリティアプリケーションブロックを介して実行できます。

詳細:このサービスは、ブラウザー/Silverlightクライアントによって使用されています。

0 投票する
9 に答える
101134 参照

wcf - 「スキーマhttpに一致するベースアドレスが見つかりませんでした」を修正する方法... WCFで

IIS でホストされているサーバーに WCF サービスを展開しようとしています。当然、それは私のマシンで動作します:)

しかし、デプロイすると、次のエラーが発生します。

このコレクションには、スキーム http のアドレスが既に含まれています。このコレクションには、スキームごとに 1 つのアドレスしか存在できません。

これをグーグルで検索すると、serviceHostingEnvironment 要素を web.config ファイルに配置する必要があることがわかりました。

しかし、これを行うと、次のようになります。

バインディング BasicHttpBinding を持つエンドポイントのスキーム http に一致するベース アドレスが見つかりませんでした。登録されているベース アドレス スキームは [https] です。

ベースアドレスが分からないようですが、どうやって指定すればよいのでしょうか?私のweb.configファイルの関連セクションは次のとおりです。

何が起こっているのか、それを修正する方法について誰かが光を当てることができますか?

0 投票する
4 に答える
1662 参照

c# - Winforms でホストされている WCF サービスがシングル スレッドであるのはなぜですか?

古い ASP.NET Web サービスを置き換えるために使用している WCF サービスがあります。サービスは正常に動作しているように見えますが、何らかの理由で同時リクエストを処理できません。私のサービスの実装には、次のプロパティがあります。

私のホスト宣言は次のようになります。

サービスが実行され、正しい結果が返されますが、2 つのクライアントが同時に呼び出しを行おうとすると、呼び出しが一緒に実行されるのではなく、一方のクライアントが他方のクライアントが終了するまでブロックされます。構成ファイルは使用していません。私はすべてをプログラムでやろうとしています。この動作を引き起こしている何かが正しく設定されていませんか? この問題なしで NetTCPBinding を使用して他のサービスを実行しました。

編集: John Saunders への回答: ASP.NET 互換モードについて詳しくありません。私はセッション状態を使用していません。サービスはステートレスで、リクエストを処理するだけです。実際のメソッドの実装は別として、私が行ったすべてのことは、ここにリストされたコードにあります。

考えられる解決策:

host.Open()メインフォームの form_load イベントから関数を呼び出していました。呼び出しを別のスレッドに移動しました。このスレッドが行ったのは呼び出しhost.Open()だけでしたが、サービスは期待どおりに動作しているようです。

0 投票する
2 に答える
1794 参照

wcf - 最初の WCF 要求、クライアントは常に System.Xml.XmlException をスローします: 複数のルート要素があります

WCF ホスト アプリケーション プールが起動するたびに、最初の WCF 呼び出しを行うクライアントは常に "System.Xml.XmlException: There are multiple root elements" をスローします。後続の呼び出しはすべて完全に機能します。

この例外は、WCF 要求のコンシューマー/クライアント側で発生します。完全な WCF クライアントと Silverlight クライアントの両方でこれをテストしました。basicHttpBinding、セキュリティなし、および aspnetCompatabilityMode = true を使用しています

アプリプールが生きていれば大したことではありませんが、アクティビティがないとシャットダウンし、バックアップを開始するとエラーが再び発生します。

また、アプリケーション プールは、WCF 以外の要求から別のページに開始される場合があることにも言及する必要があります。ただし、WCF が初めて呼び出されると、クライアント側でこの例外がスローされます。

誰もこれを見たことがありますか?必要に応じて詳細を提供できます。

ありがとう

0 投票する
1 に答える
858 参照

wcf - WCF-BasicHttp NTLM ESB ガイダンス

IIS にある asmx サービスにアクセスしようとしています。asmx は統合セキュリティを使用しています。ESB ガイダンス 1.0 内で構成された wcf-basichttp アダプターを使用して呼び出そうとしています。

私が得ているエラーは次のとおりです。

HTTP 要求は、クライアント認証スキーム「匿名」では許可されていません。サーバーから受信した認証ヘッダーは「NTLM」でした

エンドポイント構成で設定しようとしました:

どんなアイデアでも評価されます

0 投票する
2 に答える
1289 参照

wcf - MEXエンドポイントのないBasicHttpBindingを使用するWCFサービスは、絶対的な見知らぬ人によって悪用される可能性がありますか?

私が理解していることから:MEXエンドポイント/ WSDLがない場合、サービスは基本的に検出できません。あなたのデータ契約を知っている人だけがあなたのサービスを利用できるはずです。

この主張は水を保持しますか、それともインターネットの悪意のある住人がMEXエンドポイントを持たないサービスを呼び出す/消費する方法を理解する方法はありますか?

編集:アンドリューが指摘したように、この戦略は本当に安全であると見なされるべきではありません。外部の消費者とのQAフェーズでのランダムな悪用から安全であるかどうかについては、もっと疑問に思っています。