問題タブ [webservicehost]
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.
c# - 別のプロジェクトに WebReference を追加できるように、WSDL/説明を取得するにはどうすればよいですか?
Visual Studio で WebReference を簡単に追加する方法を知っています。
また、通常の ASP.NET Web サービス プロジェクトを作成する方法も知っていますが、ここで行っているのはそれではありません。
したがって、私が実行している WebService は次のようになります。
問題は、Visual Studio で上記のサービスに WebReference を追加しようとすると、エラーが発生することです。
「サービス参照の追加」->「Web 参照の追加」および URL に自分の URL、http://example.com:8080を記述します。
次に、「サービス...エンドポイントが見つかりません」というメッセージが表示されます。[Web 参照の追加] ボックスのエラー メッセージ:
「 http://example.com:8080/ 」のダウンロード中にエラーが発生しました。リクエストは HTTP ステータス 404: Not Found で失敗しました。「 http://example.com:8080/ $metadata」のダウンロード中にエラーが発生しました。リクエストは HTTP ステータス 404: Not Found で失敗しました。
Web ブラウザを開いてhttp://example.com:8080/GetAreaに直接アクセスすると、サービスが期待どおりに呼び出され、実行されます。
問題を短く言い換えると、WSDL/説明がないため、Web サービス参照を追加できません。
inversion-of-control - IoCコンテナ、WCF、ServiceHostFactories
最近IoCについて読んでいますが、私が開発しているWCFWebサービスでは間違いなく役立つと思います。ただし、Ninject、StructureMap、およびSpring.Net(これら3つのみをチェックしました)では、カスタムFactory
属性を*.svc
ファイルに追加する必要があるようです。
問題は、サービスが展開されるシステムのアーキテクチャーのために、このプロジェクトに必須(要件)であるカスタムファクトリをすでに使用していることです。どういうわけかこの状況を克服できますか?
wcf - WebServiceHostFactory MaxReceivedMessageSize をオーバーライドするには?
似たような質問がたくさんありますが、私はそれらのすべての解決策をすべて試しましたが、役に立ちませんでした。
WebServiceHostFactory で初期化する Web サービスがありますが、64k を超える値がスローされると、「400 Bad Request」が返されます。通常、これは MaxReceivedMessageSize、MaxBufferSize、および MaxBufferPoolSize を増やすことで解決されます。問題は、WebServiceHostFactory を使用すると、Web.Config が完全に無視されることです。ServiceModel セクションで行った変更は、サービスにまったく反映されません。
WebServiceHostFactory を完全に捨てて、web.config をゼロから設定するだけでもいいのですが、サービスはそれなしでは動作しません。メソッドの 1 つには、ストリーム パラメータとその他の文字列パラメータがあります。工場がなければ、
したがって、ファクトリを削除することはできません。このエラーを修正するために工場が行っていることを正確に理解することはできませんが、4日間費やしましたが、どこにも行きませんでした.
また、プログラムで MaxReceivedMessageSize をオーバーライドしようとしましたが、いくつかの例をあちこちで見つけました。
ファクトリが WebHttpBinding にキャストできない CustomBinding を作成するため、最初の方法は機能しません。バインディング要素が読み取り専用であるように見えるため、2番目は機能しません-要素を何に設定しても、何も変更されません。値を「変更」した後に値を読み戻すことで確認しました。3 つ目は、そこに新しいバインディング要素を投げ込もうとする最後の溝の試みでしたが、もちろんこれも失敗しました。
今、私たちは完全に途方に暮れています。どうすればこれを実行できますか?あなたはそれがとても簡単だと思うでしょう!
みんなありがとう
Web.Config
これまでに失敗した提案された修正を使用して編集します。
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 します。
wcf - パラメーターなしのコンストラクターなしで、サービス型のインスタンスを介して WebServiceHost をインスタンス化することは可能ですか?
自己ホストSystem.ServiceModel.Web.WebServiceHost
(.NET 4) を作成しようとしていますが、コンストラクターで問題が発生しています。次の 3 つのオプションがあります。
WebServiceHost()
サービスのタイプやコントラクトを指定する方法がないため、無意味に見えるパラメーターなしのコンストラクターです。それを反映して、それは何もしません-ベースを呼び出さない空のデフォルトコンストラクターだけです。WebServiceHost(object singletonInstance, params Uri[] baseAddresses)
InstanceContextMode.PerCall
これはクラスなので、シングルトン インスタンスは必要ありません。WebServiceHost(System.Type serviceType, params Uri[] baseAddresses)
サービスとしてインスタンス化する型には、パラメーターなしのコンストラクターがありません (これは、このメソッドの要件です)。NInject を使用してパラメーターをコンストラクターにプッシュしています。ただし、これをセルフホスト テストとして実行しようとしているので、DI は避けたいと考えています。
これらの線に沿ったオプションはありますか、それとも自己ホストしない必要がありますか?
c# - POSTエンドポイントを自己ホスト型(WebServiceHost)C#Webサービスで動作させるには?
それで、私はしばらくの間Webサービスをいじり回していて、私はいくつかの基本に立ち返り続けていますが、私は決して正しくないようです。
質問1:
.NET / C#でWebServiceHostを使用する場合、メソッド/エンドポイントをGET / POST/etcを使用するように定義できます。GETメソッドの設定は簡単で、ほとんど直接機能し、その機能を理解するのも簡単です。例えば:
http:/// MyWebService / PutMessage / {MyJsonString}を呼び出すと、メソッドが渡され、すべてが順調です(多かれ少なかれ)。
しかし、これを代わりにPOSTとして定義するとはどういう意味ですか?
UriTemplateはここで何をしますか?POSTを実行する場合、データはURIではなく、投稿の「データセクション」に含まれていると思います。しかし、データセクションで変数名を定義しますか?WebServiceHost / .NETは、投稿の「データセクション」に含まれているものが変数jsonStringに入れられることをどのように認識しますか?クライアント側(C#ではなく、代わりにJQueryとしましょう)からデータを投稿して、サーバー側で正しく解釈されるようにするにはどうすればよいですか?
(そして、WebMessageFormatはどのように物事に影響を与えますか?私はこれについてどこでも読んだことがあります(MSDN、Stackoverflowなど)が、明確で良い答えを見つけられませんでした。)
質問2:
これを理解するために、次のような非常に単純なPOSTメソッドを作成すると思いました。
次に、Fiddlerを使用してこのメソッドを呼び出してみますが、それはまったく機能しません。「HTTP/1.1400BadRequest」という400エラーが返されます。メソッドのコードの最初の行にブレークポイントがあり、メソッド自体には何も含まれていません。
繰り返しになりますが、.NETは、Fiddlerを使用して投稿したものが「文字列pc」に含まれている必要があることをどのように認識しますか?それを文字列としてどのように解釈し、どのタイプの文字列(UT8、ASCIIなど)ですか?
これは、Fiddlerから送信されたRAWHTTPリクエストです。
そして、私が見る限り、どのタイプのコンテンツタイプを使用するかは問題ではありません。
応答は標準的なものであり、私は自分自身を制御できません。
どんな助けでもいただければ幸いです。ありがとう。
rest - PHPRESTAPIのホスティングサービスとスケジュールされたサービス
PHPを使用してRESTAPIを実装しました。MySQLデータベースへのこのAPIアクセス。
私はホスティングサービスを探していましたが、どこから始めればよいかわかりません。このタイプのサービスの大部分はWebホスティングを参照していますが、私が理解しているように、これは私が必要としているものではありません。
誰かが私の要件をサポートする無料または安価なサービスを提案できますか?また、RESTAPIに定期的にアクセスするサービスをスケジュールする可能性も必要です。ホスティングサービスで通常どのような言語/フレームワークがサポートされているのかわからないため、これはまだ実装されていません。
どんな助けでも本当にありがたいです。
c# - WebServiceHost を WCF サービス アプリケーションに変換する
すべてのアドレスと構成が構成ファイルにある作業中のコンソール アプリケーションがあります。しかし、このコードを WCF サービス アプリケーションに移動しようとすると、あらゆる種類のエラーが発生します。
問題は、WCF サービス アプリケーションが自動的に開始され、コンソール アプリのようなメイン メソッドがないことです。main メソッドが存在しない場合に WebServiceHost を開始するように WCF サービスを定義するにはどうすればよいですか?
windows - WebServiceHost 認証を実装するには?
webservicehost クラスでの認証が認証標準に完全に準拠していないことは承知しています (ユーザーが間違った資格情報を入力したときに、別の資格情報のセットを要求するのではなく、403 禁止を返します)。
この基本認証 (セッション開始時のユーザー名とパスワード、HTTPS は不要 - 下の図を参照) は小規模なホーム プロジェクトのニーズに合っているため、引き続き実装したいと考えています。
myService のコードは次のとおりです。
次に、HTML を返すだけでなく、他のパラメーターの組み合わせを受け入れる同様のコードがあります。
私の Main クラスでは、このサービスを次のようにインスタンス化して開きました。
この単純な認証を実装するためのコードを誰かに提供してもらえますか? または、完全なチュートリアルを教えてください。助けてくれてありがとう