問題タブ [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 - Windows 認証を使用した REST で WCF サービスでマシン名を使用する方法
IIS でホストされる多くの WCF サービスを開発しています。(Windows Server 2003 SP2 で実行されている IIS 6.0)。これらのサービスは REST 用に設定されています。環境 (DEV、CERT、PROD) の場合、通常、IIS サーバーごとに多くのサービスがあります。各サービスには、アプリケーション プールを介して割り当てられる独自のログイン アカウントがあります。
これは正常に機能しますが、仮想ディレクトリで Windows 認証を有効にすると (偽装や委任ではなく、ユーザー コンテキストの受け渡しを許可するため)、特定のケースでセキュリティ エラーが発生します。ServiceEndpoint を使用して C# コードでサービスに接続すると機能しますが、ブラウザーまたは非 Wcf コード (HttpWebRequest、java など) を介してサービスに接続すると、セキュリティ エラーが発生します。
IIS の認証を Negotiate, NTLM から NTLM のみに変更すると、機能します。実際に起こっていることは、Kerberos を無効にすることです。これらのサービスはネットワーク内の他のサーバーと通信するため、サービスがリモート サーバー (通常は SQL サーバー) に接続できないという別の問題が発生し始めます。
ここで奇妙な部分があります。マシンに DNS エイリアス (CNAME レコード) を与え、URL をエイリアスと共に使用すると、機能します。例えば
これらすべてのマシンに DNS エイリアスを割り当てることはできません (これまではこれが解決策でした)。これは、VM を広範囲に使用し始め、それらを回転させたり回転させたりするためです。マシン名しかないので、マシンの起動時に DNS エイリアスのスクリプト作成を開始したくありません。
SPN の問題はわかりましたが、同じ Web サイト (通常は既定の Web サイト) で複数のサービスがホストされているため、サーバー/アカウントごとに 1 つのサービス プリンシパル名しか作成できません。サーバーごとに複数のサービスをホストしており、それぞれが独自のアカウントにマップされているため、これは解決策ではありません。
別のしわがあります。構成ファイルではエンドポイントを定義せず、コードでのみ定義します。REST バインディングを取得するコードは次のとおりです。
wcf - 400 を返すべきときに StatusCode 200/504 を返す WCF のカスタム JSON IErrorHandler
他のバインディングの中でも、JSON の入力/結果に WebHttpBinding を使用する WCF サービスがあります。
何か問題が発生したときに StatusCode を 400 に設定し、JSON のわかりやすいメッセージを返すことができるように、カスタム IErrorHandler 実装を作成しました。これは、どこにでもあるストレートな実装です (こちらで説明されている良い方法です)。
私の問題は、Visual Studio Web Development Server (Cassini) を使用してローカルでテストすると、完全に動作することです。ただし、テスト サーバー (IIS およびその他すべての標準構成を備えた Windows 2008) に展開すると、機能しません。
それを呼び出して Firebug でデバッグすると、リターンとして HttpStatusCode 200 が返され、応答テキストは返されません。Fiddler を使用すると、HttpStatusCode 504 が返され、まったく返されません。ただし、私が予想した動作 (およびローカルで発生する動作) は、responseText が設定された ajax 呼び出しのエラー コールバックへの呼び出しです。
リモートでデバッグしましたが、すべて問題ないようです。実行パイプラインに問題はなく、すべてのクラスがローカルと同じように呼び出されますが、機能しません。
助言がありますか?これを理解するためのオプションはほとんどありません。
どうもありがとう!
ajax - WCF呼び出しをHTTPSで機能させるには、何か特別なことをする必要がありますか?HTTPが正常に機能する場合はどうなりますか?
同じ概念実証サイトの2つのバージョンがあります。安全でないバージョン:
http://www.tlsadmin.com/tlsadmin/PortalHome.aspx
および安全なバージョン:
https://www.tlsadmin.com/tlsadmin/PortalHome.aspx
私が抱えている問題は、WCFベースのWebサービスがHTTPSで機能していないように見えることです。私が見逃しているもの、またはこれについて理解していないものはありますか?SVCファイルの相対URLがすべてをカバーすると思いました
おそらく、WebサービスがHTTPSで機能するように、バインディングを追加する必要がありますか?
ajax - 「ベースアドレスが見つかりません」-GoDaddy に WCF サービスをデプロイするときのエラー
WCF サービスをデプロイしようとしていますが、最終的な作業を行うのに苦労しています。私は決して展開の第一人者ではありませんので、ご容赦ください。
JSON を使用してサービスへの Ajax 呼び出しを行うために WebHttpBinding を使用していますが、次のエラーが表示されます。
ここに私のweb.configのスニペットがあります:
私は非常に多くの変更を行い、非常に多くのオプションを試したので、自分が何をしているかの概要を正直に失いました. すべてを機能させる小さなエラーを見つけていただければ幸いです。
ありがとうございました。
c# - WCFのWebHttpBinding:適切な方法で構成する方法は?
この例に従って動作させようとしています: http://weblogs.asp.net/kiyoshi/archive/2008/10/08/wcf-using-webhttpbinding-for-rest-services.aspx
これが私のものApp.config
です:
更新:サービス契約は次のとおりです。
問題は、8787 ポートに (putty
たとえば を使用して) 接続しようとすると、「接続が拒否されました」というエラーが返されることです。ご覧のとおり、コントラクト クラスとサービスの実装に間違った名前を付けようとしましたが、例外はありませんでした。私は何を間違っていますか?
.net - webHttpBindingを使用したサービスからHelloWorldの代わりにGibberishを取得する
これは、「HelloWorld」文字列を返すことになっている簡単な例です。ただし、ブラウザには。のようなものが表示されますSGVsbG8gV29ybGQ=
。oldskulスタイルのサービスからプレーンテキストを返す正しい方法はどれですか?
それを知ってください:
文字列を返すことができません。3つのUnicode文字が自動的に先頭に追加され、従来のHTTPクライアントは相互運用できなくなります。
を返すこともでき
p>Message
ますが、それでもdata
変数を抽出するために機能を解析し続ける必要があります。同じメソッドシグニチャでのミキシングMessage
とint
タイプは、AFAIKでは許可されていません。
更新:それはぎこちないものではありませんが、正しくエンコードされた応答です。しかし、そのフォーマットは私が期待するものではありません。私は(以下の紳士が示唆するように)トランスポート層のメッセージング形式の究極の制御がMessage
クラスで得られることを理解しました。UriTemplate
ただし、これを使用すると、リクエスト(属性)を解析する可能性がなくなります。Message
したがって、とを統合する方法を知っておくと便利UriRequest
です。
PS「クリーンな」統合が不可能な場合-最もエレガントな回避策は何ですか?ワイヤーカーテンの後ろで実行され、実装で借用して使用できるコードはありますか?
wcf - json を WCF webHTTP サービスに渡すとき、何に注意すればよいでしょうか?
JSON オブジェクトを Web サービス メソッドに渡す jQuery コードからポスト リクエストを実行しようとすると、多くの問題が発生します。
この質問は無意味に思えるかもしれませんが、WCF がどのように JSON 文字列を認識し、それをオブジェクトに変換するかを知りたかったのです。機能するという保証を得るには、何を構成する必要がありますか?
このようないくつかのページとブログ投稿をたどりましたが、うまくいきません。サービス コードがヒットするたびに、パラメーターが null オブジェクトとして渡されます。
知っておくべきアドバイス、ヒント、内部の仕組みはありますか?
wcf - WebHttpBinding がクライアントに到達しない
異なるバインディングを持つ 3 つのエンドポイントを提供しようとしている Web サービスを作成しました。1.basicHttpBinding、2.wsHttpBinding、3.webHttpBinding
サービス参照を作成すると、basicHttpBinding および wsHttpBinding バインディングが作成されたエンドポイントのみが取得されます。webHttpBinding が取得できません。何が間違っている可能性があります。
web.config の serviceModel ノードの構造を次に示します。
wcf - WCFStorm は、JSON が有効になっている WCF サービスの呼び出しをサポートしていますか?
JSON が有効になっている WCF サービスがあり、これらのサービスを呼び出す WCFStorm を使用して問題が発生しています。JSON をオフにすると、エラーは表示されません。表示されるエラーは次のとおりです。WSHTTPBinding と関係があることがわかりました。
オブジェクト参照がオブジェクト インスタンスに設定されていません。
WcfStorm は WebHttpBinding をサポートしていないため、機能しないことがわかりました。 http://www.wcfstorm.com/wcf/Forums/Thread.aspx?pageid=19&mid=26&ItemID=2&thread=59&pagenumber=1 .
誰かがそれを機能させる方法を知っていますか? 私たちはそれを使うのが好きです。
または、SOAP と JSON のテストを可能にし、パフォーマンスのテストとスクリプトの保存を可能にする他のツールの提案はありますか?
ありがとう
wcf - サービス ルートのパラメータ
WCF webhttp プロジェクトに取り組んでいて、ルート構成のパラメーターについて質問がありました。
プロジェクト サービス (ユーザーがプロジェクトを追加および表示できるようにする) と、ユーザーがプロジェクト内のアイテムを表示できるようにするアイテム サービスの 2 つのサービスがあります。1 つのプロジェクトに複数のアイテムを含めることができます。
フォームのURLが欲しい
localhost//projects//addproject
localhost//projects//{projectid}//item//additem
localhost//projects//{projectid}//item//getitem//{itemid}
ItemService と ProjectService の 2 つのサービスがあります。Itemservice にはメソッド additem と getitem があります Projectservice にはメソッド addproject があります
グローバル ルートでこれらのサービスを宣言するにはどうすればよいですか? 私は試した
RouteTable.Routes.Add(new ServiceRoute("projects/{projectid}/item", new WebServiceHostFactory(), typeof(ItemService)));
これは私にエラーを与えます
すべてのコードを ProjectService に追加できますが、コードの保守性のために、ProjectService と ItemService の両方が必要です