問題タブ [wse]
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 - MessageContract 属性の使用中に問題が発生しました: 例外 -> 名前空間 'http://schemas.xmlsoap.org/soap/envelope/' からの終了要素 'Body' が予期されました
WSE3 Web サービスを WCF に移行しています。ただし、クライアントは WSE3 クライアントです。
すべてのオペレーション コントラクトは、MessageContract
クラスのインスタンスを返します。これは 2 つの操作で機能しますが、同じサービス コントラクトの 1 つの操作では何らかの理由で失敗します。エラーは次のとおりです。
The signature or decryption was invalid.
WCF トレース ファイルを調べると、次のことがわかりました。
私の観察では、XmlRoot
(属性を使用する代わりにMessageContract
) 属性を使用して応答クラスを装飾すると、この例外は発生しません。ただし、応答オブジェクトはデシリアライズできません。つまり、入力トレースで XML 応答を確認できますが、期待される XML 構造が一致しないため、null
クライアント側でサービス コールが返されます。
このクラスには、属性で装飾された別のクラスのインスタンスを返すMessageContract
パブリック プロパティ ( ) が 1 つだけあります。このクラス ( で装飾されている) には、プロパティを持つエンティティ クラスのオブジェクトのを与えるプロパティがあります。MessageBodyMember
XmlRoot
xmlRoot
Collection
XmlElement
チェック/検証する必要があるのはどれですか? 必要に応じて、クラスのコード スニペットを提供できます。
asp.net - asp.netでSOAP認証を使用してWeb参照を使用せずにWebサービスを呼び出す
実行時にASP.NETのSOAPまたはWSE認証を使用してWebサービス参照をバインドする必要があります。認証なしでこれを処理できますが、SOAPまたはWSE認証でこれを行う方法がありません。誰でも私を助けてください...
.net - WSE2 の部分的な使用
古いものを置き換える.Net Webサービスをコーディングしています。既存のクライアントを壊さないようにするために、インターフェースを変更してはいけません。つまり、この Web サービスにアクセスするための WSE はありません。
「古い」Web サービスは、データベースに直接アクセスしていました。
「新しい」ものはデータベースに直接アクセスせず、別の Web サービスを使用してアクセスします。その他の Web サービスは、他のいくつかのアプリケーションによって既に使用されています。
つまり、基本的に、別の (プライベート) Web サービスの前に (パブリック) Web サービスを作成しています。
新しいパブリック Web サービスを「Front」、既存のプライベート Web サービスを「Back」と呼びます。
問題は、「Back」には WSE2 認証が必要ですが、「Front」には WSE2 なしで到達できる必要があることです。
web.configでそれを構成するにはどうすればよいですか? 次のような microsoft.web.services2 セクションと soapExtensionTypes セクションがあります。
「Back」に準拠する必要がありますが、「Front」を呼び出すクライアントも WSE2 に準拠する必要があります。
何か助けはありますか?
c# - UserNameOverTransportバインディングを使用しているときに、WCFにダイジェストモードでパスワードを送信させるにはどうすればよいですか?(WSE3.0コードをWCFに変換する)
このWSE3.0コードをWCFに変換しようとしています。
Microsoft.Web.Services3.Security.Tokens.PasswordOption.SendHashed
ダイジェストモード(上記のコード`)でパスワードを送信することを除いて、私はかなり近づいています:
上記は、パスワードをプレーンテキスト(ハッシュなし)で送信します。カスタムトークンシリアライザーを作成せずにこれを行うようにWCFを設定することは不可能であると述べている誰かと、同様のコードを変換しようとしている誰かへのこのリンクを見つけました。
この声明は正確ですか?
もしそうなら、このカスタムシリアライザーを作成して使用するには何をする必要がありますか?
このリンクは、次の式を示すコメントでリンクされているサイトのPDFと組み合わせると、良い出発点になる可能性がありますPassword_Digest = Base64 ( SHA-1 ( nonce + created + password ) )
が、誰かが私が何から導き出す必要があるのか、WCFを使用する方法についてより良い説明があれば私の新しいシリアライザーそれを聞きたいです。
c# - 開発ソリューションからのWebサービス呼び出しが遅い
OK、WSE2を使用してasp.netWebサービスを取得しました。xpマシンで実行されます。そして、win7マシンにフロントエンドのasp.netアプリケーションをインストールしました。
Framework3.5の両方。
本番環境では、すべてが正常です。
問題は、フロントエンドの「開発」バージョンを実行すると、Webサービスの呼び出しに永遠に時間がかかることです。そして永遠に、私は永遠を意味します。ここでは、永遠を分単位で数えます。
「開発」バージョンとは、ビジュアルスタジオ(2008)ソリューションにバインドされているインスタンスを実行することを意味します。ローカルのIISWebサーバーを使用しています。
私が最初に考えたのは、2台のマシン間のネットワーク/ファイアウォールの問題でした。しかし、Visual Studioを形成して、サイトを別の仮想フォルダーに「公開」すると、everithingは正常に機能します。
したがって、http:// localhost / MyDevAppとhttp:// localhost/MyPublishedAppがあります。
どちらもデフォルトのアプリプールを使用します。どちらも同一のweb.configを持っています。私の知る限り、両方の仮想ディレクトリにはまったく同じパラメータがあります。
しかし、http:// localhost / MyDevAppはWebサービスを呼び出すときにひどく、http:// localhost/MyPublishedAppは光の速度で実行されます。
3日目からこんな感じです。
いくつかのデバッグを行うと、私はそれを言うことができます:
誰かが問題が何であるかについて少しでも考えを持っていますか?
編集
また、仮想ディレクトリを自分のWebサイトのプロパティから別のプロパティ(http:// localhost / MydDevApp2など)に変更しようとしましたが、同じ結果になりました。
編集2
おそらくそれが原因である可能性があります。ソリューションにバインドされたサイトはc:\Projets\MySolution\MyDevApp
、「公開された」サイトが下にある間に存在しますc:\inetpub\wwwroot\MyPublishedApp
。c:\Projets
フォルダはウイルス対策スキャンから除外されるため、通常は低速ではなく高速である必要があります。
編集3
c:\ inetpub \ wwwroot \ Otherに別のワークスペースを作成し(ソリューションはチームサーバーのソース管理下にあります)、WebプロジェクトのURLを変更し、コンパイルして実行しました:問題ありません。したがって、ファイルが存在する物理パスがこれを引き起こしているように見えますが、ソリューションにバインドされているという事実はそうではありません。
編集4(8月19日)
さて、やることはあまりないようです。前回の更新から約10日が経ちましたが、新しいワークスペースの下のサイトも遅くなり始めています。そこで、ワークスペースをディスク上のc:\ inetpub \ wwwroot \ Other2に移動しましたが、わかりますか?それは再びうまくいっています。たぶん、10日くらいでまた動かさないといけないでしょう。
編集5
私はserverfaultに移行するように質問にフラグを立てましたが、最初に考えたように、最終的にはプログラミングとは何の関係もありません。
.net - X509トークンを使用して.NetでWebサービスを使用する
.netではWebサービスの利用は非常に簡単に思えます。プロキシを作成してから、コードで使用します。私がヒットしようとしているWebサービスにはトークンセキュリティがあるため、MSDNドキュメントから直接次のメソッドを作成しました。
私の質問は、このメソッドを使用してWebサービスを呼び出すにはどうすればよいですか?誰かがこれを以前にやったことがありますか?それほど難しいことではないと思いますが、ここで困惑していることを認めなければなりません。
wcf - 従来のWSEクライアントをWCFサービスに接続しています...クライアントに変更を加える必要はありません
WSEを使用してasmxWebサービスに接続する.NET2.0FormsAppクライアントがあります。
サービスをWCFにアップグレードし、VS2010と.NET4を利用したいのですが、既存の(企業の)顧客にクライアントソフトウェア/フレームワークなどを更新させることはできません。そのため、私たちはそのような立場にあります。サービスをアップグレードする唯一の方法は、下位互換性を維持できるかどうかです。
顧客側でapp.configを更新できますが、実行可能ファイルは更新できません。つまり、新しいサービス参照を追加することはできません。
クライアントに変更を加えずに、クライアントアプリからの呼び出しを受け入れるようにWCFサービスを構成しようとして失敗しました。私はこれができるとは思えません。もちろん、クライアントに新しい参照を追加すると機能しますが、既存の参照を使用して新しいサービスで「偽造」しようとしても機能しません。
サービス側の構成は次のようになります。
私たちが得ているエラーは次のとおりです。
EndpointDispatcherでのContractFilterの不一致により、アクション'http://webservices.xyz.co.uk/xyz/DoTest'のメッセージを受信者で処理できません。これは、コントラクトの不一致(送信者と受信者の間のアクションの不一致)または送信者と受信者の間のバインディング/セキュリティの不一致が原因である可能性があります。送信者と受信者が同じコントラクトと同じバインディング(メッセージ、トランスポート、なしなどのセキュリティ要件を含む)を持っていることを確認します。
喜んで受け取った入力
.net - WSE 3.0 (.NET) で UsernameToken の Nonce 要素に EncodingType 属性を追加する方法
WSE 3.0 を使用して MVC3 .NET Web アプリから Java Web サービスを呼び出そうとしています。
ただし、Web サービスでは、UsernameToken の Nonce 要素に「EncodingType」属性が必要です。以下は、この Java Web サービスで正しく動作する SOAP エンベロープのサンプルです。
以下は、VS2010 が生成した (Fiddler でキャプチャされた) プロキシから生成された SOAP エンベロープです。
この属性が欠落している場合、この Web サービスは「無効なセキュリティ トークンが提供されました (ユーザー名トークンの処理中にエラーが発生しました)」を返します。
EncodingType 属性を追加するにはどうすればよいですか?
wse - サーバーがSOAPメッセージで応答しているにもかかわらず、Microsoft.Web.Services2.SoapClient.SendRequestResponseがタイムアウトする
私が理解しているように、あなたが学んだいくつかの有用な情報を投稿する最良の方法は、自分で質問をしてからそれに答えることです。
シナリオ:
- テンプレートxsltファイルからのSOAPリクエストと、MessageIDを含むいくつかのパラメーターのサブを構築するアプリがあります
- リクエストのようにアクセスし、適切に応答し、クライアントが応答を適切に処理する実際のサービス
- サービスをシミュレートするスタブ/レスポンダーを構築しようとしています
- スタブはIHttpHandlerを実装するだけで、POST操作に応答します
- スタブは、実際の応答の例である既定の応答をXMLファイルから読み取り、それをネットワーク経由で送信します
- Visual Round Trip Analyzer(内部のNetMon)とFiddlerの両方が、応答がネットワークを介してクライアントに伝わるのを確認します
- SendRequestResponseは最終的にタイムアウトになり、例外をスローします
ios - MonoTouchを使用したKerberos認証を使用してASP.netSOAPサービスに接続できますか?
MonoTouchを使用したKerberos認証を使用してASP.netSOAPサービスに接続しようとしていますが、WSE拡張機能をサポートしていません。401認証の失敗を返します。
このようなことをすることを計画していた http://www.15seconds.com/issue/040603.htm
MonoTouchでWebServicesClientProtocolクラスを使用する方法、またはMTを使用してKerberos認証を行う別の方法はありますか?