問題タブ [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 投票する
0 に答える
257 参照

wcf - WCF + SmtpClient:Windows2008環境でのみ機能します

議論の続きは別の投稿で始まりました:私はWindowsサービスを使用してWCFメール送信者をホストしました。サービス自体は非常に単純です。DataContractを使用して基本的なSystem.Net.Mail.MailMessageクラスプロパティ(添付ファイルをサポートします。前述の投稿、edosoftによるコードを参照してください)とSystem.Net.Mail.SmtpClientクラスを使用して実際に電子メールを送信します。使用された.NETFrameworkは3.5SP1(VS2008を使用)でした。

アセンブリ内ですでにコードが機能していることに注意してください。演習は、WCFサービスを使用して機能を公開することだけでした。basicHttpBindingエンドポイントバインディングに使用しましたが、追加の構成はありません。

デスクトップ環境(Windows XP)でサービスをテストしたところ、次のことに気づきました。

  • 電子メールは、WCFサービスを呼び出してから最初の10〜15秒以内にWindowsサービスを再起動した場合にのみ送信されました。それ以外の場合は、何も起こりません。

  • サービストレース/ログファイルには例外/エラーメッセージはありません。

  • SmtpClient.Send(MailMessage msg)メソッドを呼び出したり、サービスコードを実行したりするときに、例外/エラーメッセージは表示されません。

私はしばらくの間、さまざまなバインディングと構成で遊んでいましたが、別のスレッドからメッセージを送信しようとしても、変更はありませんでした。私は実際にこの問題に関連するフォーラムの質問に出くわしました。ASMXWebサービス内から呼び出された同じメソッドは、IISRESETが実行された場合にのみ機能します。WCFで使用されているのと同じ送信コードを使用してASMXWebサービスを作成することで、この問題を再現することができました。IISでWCFサービスをホストすることも役に立ちませんでした(同じ問題)。

次に、Windows 2008環境(Windowsサービスがホストされている)にサービスを展開することにしました。元の単純なコードに変更はありません。同じ構成、同じすべて。それはすぐに機能し、遅延や私が特定できるその他の問題はありませんでした。誰かがこの問題について何か考えを持っていますか?今からWindows2003環境で試してみますが、それが実際に既知のバグ/制限であるのか、それともASMXのバグに関連しているのか(見たところ)を知りたいのです。誰かが以前にそれを見たことがありますか?

ありがとう、

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

wcf - WCF BasicHttpBinding HTTP ポスト

IIS でホストされている WCF サービスに投稿することはできますか? これが REST を使用して可能であることはわかっていますが、実際には WSDL 生成と SOAP ヘッダーが必要です。既存の ASMX Web サービスを WCF に移行する必要がありますが、クライアントが http ポスト (javascript による xml http 要求) を介してサービスを引き続き利用できるようにする必要もあります。REST が唯一のオプションですか?

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

java - Java を使用して TransportWithMessageCredentials (UserName) で WCF サービスにアクセスする

TransportWithMessageCredentials とカスタムのユーザー名とパスワードの検証で BasicHttpBinding を使用する WCF サービスを開発しました。サービスとのインターフェースが必要なクライアントがいますが、クライアントは Java を使用しています。私自身は Java プログラマーではないので、あまり彼を助けることはできません。そこで、SO コミュニティに質問を広げようと思いました。ここで光を当てることができますか?

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

c# - 基本的なHttpBinding、暗号化、署名、およびHTTPを介したusernameTokenを使用したWCF

適切な要求を生成するようにWCFクライアントを構成しようとしています。そのリクエストでは、usernameTokenを含むセキュリティヘッダーが必要です。また、リクエストを暗号化して署名する必要があります。これはすべて、プレーンHTTPを介して通信されます。

これまでのところ、クライアントに署名してメッセージを暗号化することができました。次に、usernameTokenをこのセキュリティヘッダーに組み込む必要があります。

これどうやってするの?

私はbasicHttpBindingを使用しており、セキュリティモードを「Message」に設定し、clientCredentialType="Certificate"をメッセージに設定しています。

clearUsernameTokenバインディングライブラリに出くわしましたが、これらすべて(usernameToken、署名、暗号化)を1つのクライアントに組み込み、HTTPを介してすべてを組み込む方法がわかりません。

これも可能ですか?

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

wcf - XmlDictionaryReaderQuotas オブジェクト、特に MaxStringContentLength と MaxArrayLength に高い値を設定する際の落とし穴はありますか?

特筆すべきは、これはオブジェクトのReaderQuotasプロパティ用です。BasicHttpBinding具体的には、現在の値である 163,840,000 (以前の開発者からの魔法の文書化されていない値、ソースがわからない) が十分でない (非常に) まれな状況があるかもしれません。ただし、実稼働 (有料クライアントの) 環境では重要かもしれませんが、一見少数のエッジ ケースでこの値をさらに上げることにうんざりしています。

私が知りたいのは、大量のデータを明示的にシリアル化してパイプに送信することを明示的に許可する以外に、より高い値を使用する際の既知または隠れた落とし穴はありますか (これは WCF エンドポイント用です)。落とし穴があるとすれば、それは何であり、何が影響を受けるか。

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

silverlight - basicHttpBindingを使用するWCFサービスは、要求ごとに新しい接続を作成しますか?

IISWebサーバーでWCFサービスを呼び出すSilverlightクライアントがあります。呼び出しにはデフォルトのbasicHttpBinding設定を使用します。私のクライアントコードには、[サービス参照の更新]メニューオプションを使用したときに生成される通常のVisualStudioで生成されたプロキシが含まれています。

そのプロキシを使用するサービスへのすべての呼び出しは同じ接続を使用しますか?または、電話をかけるたびに接続を作成し、応答を受信したら接続を閉じますか?クライアントが実際にHTTP経由でSOAP呼び出しを行っているので、すべてのサービス要求に新しい接続が作成されたと仮定しましたが、それが当てはまるかどうかを確認したいですか?

(毎回新しい接続を作成すると、負荷分散されているサーバーが複数あるため、各リクエストが異なるサーバーに到達する可能性があるため、知っておく必要があります。プロキシの期間中は単一の接続を使用するため、それらを想定できます。すべてが同じマシンに配置されるため、パフォーマンスを向上させるために状態情報をキャッシュします。)

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

wcf - WCFBasichttpbinding400エラー

Fiddlerを使用してSOAPリクエストをWebサービスに投稿しています。コンソールアプリクライアント(サービス参照プロキシを使用)を使用しているときに、サービスからのリクエストをキャプチャしました。サービス参照クライアントを介した要求は正常に機能します。ただし、フィドラーで同じリクエストデータを使用すると、400の不正なリクエストエラーが発生します。fiddlerで使用しているリクエストデータは以下のとおりです。どんなガイダンスも素晴らしいでしょう!

fiddlerで次のコンテンツヘッダーを使用する

コンテンツの長さ:786コンテンツタイプ:text / xml SoapAction:http ://tempuri.org/Service1/Test

編集:正確なエラーを見つけましたが、それが何を意味するのかわかりません。エラーは、アドレス指定バージョン'AddressingNone(http://schemas.microsoft.com/ws/2005/05/addressing/none)'がWS-Addressingヘッダーの追加をサポートしていないことです。何か案は?

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

c# - BasicHttpBinding と同等の CustomBinding (WCF クライアントと PHP WebService を使用)

WCF を使用して WebService PHP で Visual Studio 2008 単体テスト C# を実行していたところ、次のエラーが発生しました。

System.ServiceModel.Security.MessageSecurityException: HTTP 要求は、クライアント認証スキーム 'Anonymous' で承認されていません。サーバーから受信した認証ヘッダーは「NTLM,Basic realm="(null)"」でした。---> System.Net.WebException: リモート サーバーがエラーを返しました: (401) Unauthorized..

PHP WebServiceに接続するために、Windows XP SP3マシン、単体テストVS 2008、およびWCFを使用しています。

PHP WebService を制御できません。変更できません(構成セキュリティもありません)。

Web サービス PHP を使用するクライアントの構成ファイルは次のとおりです。

本当に、私は C# コードを使用します。

更新: テスト

次の行を追加します。

次のエラーが表示されます: HTTP 要求は、クライアント認証スキーム「匿名」では許可されていません。サーバーから受信した認証ヘッダーは「NTLM,Basic realm="(null)"」でした

次の行を追加します。

私はこのエラーを受け取ります:

System.ServiceModel.CommunicationObjectFaultedException: El objeto de comunicación, System.ServiceModel.Channels.ServiceChannel, no se puede usar para la la comunicación porque se encuentra en el estado Faulted.

//サーバー スタック トレース: // ja System.ServiceModel.Channels.CommunicationObject.Close(TimeSpan タイムアウト)

次の行を追加します。

私はこのエラーを受け取ります:

/Exception = System.ServiceModel.CommunicationException: バージョンが不明です。

// サーバー スタック トレース: // ja System.ServiceModel.Channels.ReceivedMessage.ReadStartEnvelope(XmlDictionaryReader リーダー)

// en System.ServiceModel.Channels.StreamedMessage..ctor(XmlDictionaryReader reader, Int32 maxSizeOfHeaders, MessageVersion desiredVersion)

// en System.ServiceModel.Channels.Message.CreateMessage(XmlDictionaryReader エンベロープリーダー、Int32 maxSizeOfHeaders、MessageVersion バージョン)

// en System.ServiceModel.Channels.Message.CreateMessage(XmlReader エンベロープリーダー、Int32 maxSizeOfHeaders、MessageVersion バージョン)

// en CustomTextEncoder.CustomTextMessageEncoder.ReadMessage(Stream stream, Int32 maxSizeOfHeaders, String contentType) en E:\TFS\pro\CustomTextEncoder\CustomTextMessageEncoder.cs:línea 66

// en System.ServiceModel.Channels.MessageEncoder.ReadMessage(ストリーム ストリーム, Int32 maxSizeOfHeaders)

// en CustomTextEncoder.CustomTextMessageEncoder.ReadMessage (ArraySegment`1 buffer, BufferManager bufferManager, String contentType) en E:\TFS\pro\CustomTextEncoder\CustomTextMessageEncoder.cs:línea 60

// en System.ServiceModel.Channels.MessageEncoder.ReadMessage(ストリーム ストリーム, BufferManager bufferManager, Int32 maxBufferSize, String contentType)

// en System.ServiceModel.Channels.HttpInput.ReadChunkedBufferedMessage(Stream inputStream)

以下は正しい構成だと思います(basichttpbindingの場合)

basichttpbinding での WCF の Web サービスは、柔軟性に欠ける可能性があります。CustomBinding は、その名前が示すように、ユーザーが独自の Web サービス バインディングを設計できることを示しています。

CustomBindingと SecurityMode (basichttpbinding など) を使用する必要があります: WCF BasicHttpBinding と同等の CustomBinding

セキュリティ モードが必要です: TransportCredentialOnly、Basic、HTTP transport、および encoding="ISO-8859-1"

http://www.codemeit.com/security/wcf-basichttpbinding-equivalent-custombinding.html

http://social.msdn.microsoft.com/Forums/en/wcf/thread/6cefadf1-9939-4f3b-a502-2d79a30c7d3a

http://offroadcoder.com/2008/03/23/CallingYourNusoapPHPWebServiceFromWCF.aspx

http://msdn.microsoft.com/en-us/library/ms731092(v=VS.90).aspx

この構成を使用して再試行すると、次のエラーが表示されます。

構成:

エラー (InnerException が null):

エラー: メッセージのバージョンを認識できません

ヒント: System.ServiceModel.CommunicationException 説明: バージョンは不明です。スタック トレース: サーバー スタック トレース:

System.ServiceModel.Channels.ReceivedMessage.ReadStartEnvelope(XmlDictionaryReader リーダー)

System.ServiceModel.Channels.StreamedMessage..ctor(XmlDictionaryReader リーダー、Int32 maxSizeOfHeaders、MessageVersion desiredVersion)

System.ServiceModel.Channels.Message.CreateMessage(XmlDictionaryReader エンベロープリーダー、Int32 maxSizeOfHeaders、MessageVersion バージョン)

ja System.ServiceModel.Channels.Message.CreateMessage(XmlReader エンベロープリーダー、Int32 maxSizeOfHeaders、MessageVersion バージョン)

ja Reale.IntegracionEasyVista.CustomTextEncoder.CustomTextMessageEncoder.ReadMessage(Stream stream, Int32 maxSizeOfHeaders, String contentType) ja E:\IntegracionEasyVista\CustomTextEncoder\CustomTextMessageEncoder.cs:línea 66

System.ServiceModel.Channels.MessageEncoder.ReadMessage(ストリーム ストリーム、Int32 maxSizeOfHeaders) Reale.IntegracionEasyVista.CustomTextEncoder.CustomTextMessageEncoder.ReadMessage(ArraySegment`1 バッファ、BufferManager bufferManager、文字列 contentType) E:\IntegracionEasyVista\CustomTextEncoder\CustomTextMessageEncoder.cs :リネア 60

ja System.ServiceModel.Channels.MessageEncoder.ReadMessage(ストリーム ストリーム, BufferManager bufferManager, Int32 maxBufferSize, String contentType)

ja System.ServiceModel.Channels.HttpInput.ReadChunkedBufferedMessage(Stream inputStream)

ja System.ServiceModel.Channels.HttpInput.ParseIncomingMessage(Exception& requestException)

System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan タイムアウト)

ja System.ServiceModel.Channels.RequestChannel.Request(メッセージ メッセージ、TimeSpan タイムアウト)

ja System.ServiceModel.Dispatcher.RequestChannelBinder.Request(メッセージ メッセージ、TimeSpan タイムアウト)

ja System.ServiceModel.Channels.ServiceChannel.Call(String アクション、Boolean oneway、ProxyOperationRuntime 操作、Object[] ins、Object[] outs、TimeSpan タイムアウト)

ja System.ServiceModel.Channels.ServiceChannel.Call(文字列アクション, Boolean oneway, ProxyOperationRuntime 操作, Object[] ins, Object[] outs)

ja System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime 操作)

ja System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage メッセージ)

詳細: Service.php の WDSL の一部

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

android - ksoap2 (Android) および GZIPped BasicHttpBinding

GZIP で圧縮された ksoap2 を使用して、BasicHttp WCF Web サービスを使用したいと考えています。

ksoap2 の Android バージョン (http://code.google.com/p/ksoap2-android/) でこれを行う方法はありますか、それとも別の方法がありますか?

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

wcf - WCF 構成 - basicHttpbinding

WCF の基本構成に問題があります。私は携帯電話アプリケーションに取り組んでいます。最初に、basicHttpBinding を使用するテスト デスクトップ アプリケーションを作成しましたが、すべて問題ありませんでした。次に、同じコードを使用しました (違いは ServerReference だけです - 電話では、NetCFSvcUtil を使用して生成された 2 つのサーバー ファイルを使用しました)。電話アプリケーションで、Endpoint no Found Exception が発生します。以下に私の設定を入れています。助けや提案をいただければ幸いです。

よろしく。

電話側の例外:

メッセージを受け入れることができるhttp://localhost:4444/Service/PhoneServiceでリッスンしているエンドポイントはありませんでし た。これは、多くの場合、アドレスまたは SOAP アクションが正しくないことが原因です。詳細については、InnerException (存在する場合) を参照してください。

電話の設定:

** サーバー構成の適切なフラグメント**

*ブラウザでの設定 *

電話サービス サービス

サービスを作成しました。

このサービスをテストするには、クライアントを作成し、それを使用してサービスを呼び出す必要があります。これは、コマンド ラインから次の構文で svcutil.exe ツールを使用して行うことができます。

svcutil.exe http://localhost:4444/Service/PhoneService?wsdl

これにより、クライアント クラスを含む構成ファイルとコード ファイルが生成されます。2 つのファイルをクライアント アプリケーションに追加し、生成されたクライアント クラスを使用してサービスを呼び出します。例えば: