問題タブ [self-hosting]

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 投票する
1 に答える
383 参照

apache - 提供すべきでない Apache 提供ファイル

今日、新しくインストールしたApache HTTP Server が自分のC:\uploads\ ディレクトリからファイルを提供できることを発見しました。

に 2 つのフォルダーがありますC:\uploads

  • C:\アップロード\テンプレート
  • C:\アップロード\サイト

両方のフォルダにtestimage.jpg.

次のように要求すると、Apache がテンプレート フォルダーからファイルを提供することがわかりました。

http://localhost/templates/testimage.jpg

しかし、http://localhost/sites/testimage.jpg 404の!

OMG - まず、Apache がそもそもテンプレートフォルダーを提供するのはなぜですか? 特別ですか?

次に、apache がサイトなどの他のフォルダーへのアクセスを許可しないのは、どのようなルールの任意のセットですか?

私は困惑している。おそらく、インストール中にどこかで間違った方向に進んだのでしょう。

0 投票する
3 に答える
6657 参照

wcf - トランスポートセキュリティを備えたWCFセルフホストサービス(リモートパーティがトランスポートストリームを閉じたため、認証に失敗しました)。

トランスポートセキュリティを追加したいセルフホストサービスがあります。WSHttpBinding.SecurityModeをTransportに設定し、ClientCredentialTypeをHttpClientCredentialType.Noneに設定しました。証明書を作成し、ServiceHost.Credentials.ServiceCertificate.SetCertificate()を使用してホストに設定しました。また、netsh http add sslcert ipport = 127.0.0.1:80 certhash = [MyCertHash] certstorename = MYappid=を使用して登録しました。 [TheGuidOfTheAppTahtRunsTheService] verifyclientcertrevocation = disable

サービスを呼び出そうとすると、次のエラーメッセージが表示されます。「リモートパーティがトランスポートストリームを閉じたため、認証に失敗しました。」

これは、クライアントとサーバーが相互に認証しようとすることを意味しますか?どうすれば無効にできますか?明確にするために、私はクライアントに証明書をインストールしたくありません。認証atmを探しているのではなく、可能であればメッセージの内容を保護するだけです。

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

wcf - IIS でのホスティングに対して、WCF Web サービスを Windows サービスとしてホストしたい

いくつかの Web サービスを公開したいのですが、IIS でホスティングするのではなく、それらを Windows サービスとしてホスティングすることを考えています。

それは良い習慣ですか?

もし、そうなら?どうすれば安全になりますか?

それにアクセスしているユーザーを認証したい (カスタム セキュリティ データベースに対して) また、要求がビジネス パートナーからのものであることを確認したい (X.509 証明書???? これではあまり機能しませんでした)。

この点についてご指摘いただきありがとうございます。

よろしくお願いします、 アジェイ

0 投票する
8 に答える
50556 参照

wcf - 複数のコントラクトで WCF ServiceHost を実行する

単一のコントラクトで ServiceHost を実行すると、次のように正常に動作します。

ここで、2 番目 (3 番目、4 番目、...) のコントラクトを追加したいと思います。私の最初の推測は、次のようなエンドポイントを追加することです。

しかしもちろん、これは機能しません。ServiceHost の作成では、MyService1 をパラメーターとして渡すか、MyService2 を渡すことができるため、多くのエンドポイントをサービスに追加できますが、提供できるのはすべて同じコントラクトを使用する必要があるためです。 1つの実装?
ここで、私は要点を見逃していると感じました。私が追加するすべてのエンドポイント コントラクトの実装を提供する何らかの方法があるはずです。

0 投票する
3 に答える
1531 参照

.net - WCFセルフホストサービスは、IISホストオプションよりも多かれ少なかれ負荷を処理しますか?

ホスティングオプションは、WCFサービスが処理できる要求の量に影響しますか?

0 投票する
0 に答える
2360 参照

wcf - Silverlight アプリをセルフ ホステッド WCF サービスに接続する

192.168.0.199:87 で実行されている WCF サービスを作成しました。サービスは問題なく動作します。ただし、VS の開発用 PC でこのサービスを使用する Silverlight アプリを作成すると、クロスドメインの問題が発生します。どうすればこれを解決できますか? サービスは IIS WCF サービスではありません。また、WCF サービスと Silverlight アプリを同じポートでホストすることもできません。Silverlight は 192.178.0.199:87 で clientaccesspolicy.xml を探しています。この場合、これは自分でホストする WCF サービスのアドレスです。

どんな助けでも素晴らしいでしょう。

これは、何か良いものを醸造できるかどうかわからない私のコードです。私の app.config ファイルはここにあります。エンドポイントの問題だと思いますが、よくわかりません。 http://213.46.36.140/app.config.txt

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

.net - 単体テスト時のServiceHostのアドレスの競合

.configファイルに基づいてServiceHostsを動的に作成する小さなWCFホスティングエンジンを作成しています。一般的な考え方は、すべてのサービスをオフラインにすることなく、実行時に既存のサービスを削除したり、新しいサービスを追加したりできるようにすることです。

問題のあるユニットテストに遭遇しました。これは、これが思ったほど簡単ではない可能性があることを示しています。特定のエンドポイントには1つのServiceHostしか存在しないようです(サービスの複数の異なるエンドポイントが1つのServiceHostに存在する場合でも)。これは通常は問題ではありませんが、サービスを再構成する必要がある場合、元のServiceHostを停止しても、実際にはそのエンドポイントアドレスの登録が強制終了されることはありません。同じサービス(つまり、同じエンドポイントが使用されている)に対して別のServiceHostを作成しようとすると、次の例外が発生して失敗します。

ユニットテスト中に実際にエラーが発生しています。テストでは1つのユニットを実行します。これにより、ServiceHostsとホスティングエンジンが人間的に可能な限り完全にシャットダウンされます。次に、ホスティングエンジンの別のインスタンスを作成します。このインスタンスは、別のテストのために同じServiceHostsを再作成しようとします。2番目のテストでは、上記のエラーが発生します。ServiceHost.Close()が呼び出されている間、それは実際にはサービスホストを破棄しないと推測しています...したがって、それはまだメモリ内でぶら下がっています。GCが古いサービスホストをクリーンアップしているかどうかはわかりません...問題は最初に発生した後も解消されずに解決しません(私が判断できたのは最善です...これまで約30分待っていました。 )。

system.serviceModelの構成ファイルは次のとおりです。

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

.net - WCF サービスのセルフホスティングのトラブル

コンソール アプリから開始する Windows サービス内で WCF サービスをホストしようとしています。コンソール アプリと同様に、各サービスは独自のプロジェクトです。app.config を WCF サービス ライブラリからコンソール アプリの app.config にコピーしましたが、「サービスにはアプリケーション エンドポイントがありません...」というメッセージが表示され続けます。エラーは私のタイプ参照が完全に修飾されていないことを意味することをいくつかの場所で読みましたが、それを2重(3重、4重...)チェックしました。そして、私は app.config を持っていると確信しています。デバッグ ディレクトリには、コンソール アプリ、コンソール アプリ vshost、Win サービスの 3 つの exe があります。Win サービスには app.config がなかったので、探している場合に備えて app.config をコピーしようとしましたが、うまくいきませんでした。また、構成の名前が正しいことも確認しました (<program>.exe.config)。

これが私が使用しているものです。私のコンソール アプリは と のインスタンスを作成し、JobSchdeulerを呼び出しますJobSchedulerConsoleStart

ホスト コード:

app.config

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

ajax - AJAXクライアント用のセルフホスティングWCF

WCF Webサービスをセルフホストし、HTTPエンドポイントにajaxサポートを提供しようとしています。WCFとAJAXについて私が見つけたほとんどすべてが、私が使用したくないIISについて話している。

サービスをホストするためのシンプルなコンソールアプリを作成しました。私のサービスには1つの方法しかありません:

そして、これがapp.configコードです:

サービスメタデータエンドポイントにアクセスしてWSDLを確認できますが、ajaxクライアントから使用できません。だから私の質問は:1。これを行うことは可能ですか?2.明らかに不足している必要な構成は何ですか?

.svcファイルを使用していません

ありがとう!

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

c# - WCF サービスの Monitor クラスとの同期の問題

自己ホスト型の WCF サービスがあり、次の問題があります: サービスのインスタンスを作成してから 15 分後、操作コントラクト メソッドで TryEnter 呼び出しが常に false を返しますが、Monitor を介した同期も使用する Main 関数で TryEnter 呼び出しを行います。クラス、true を返します。

アプリとバグの説明は次のとおりです。 Windows XP SP2 の Visual Studio 2008 (C#) でセルフホステッド WCF サービスを開発しています。ホストの ServiceHost インスタンスは、Main 関数の開始時に作成されます。Main 関数は while (true) ループを実行し、その間に定期的な読み取り、書き込み、メンテナンスなどを実行します。ワーカー スレッドのコンテナーとして機能するオブジェクトの静的コレクション (時間の経過とともに追加または削除できます) があります。これらのスレッドには、Main 関数によって要求された定期的な作業を実行するスレッドもあれば、リモート デバイスへのオンデマンドの読み取りと書き込みを実行するスレッドもあります。Monitor クラス (TryEnter および Exit メソッド) を使用して、これらのオブジェクトに対して同期ロックが行われます。これらのオブジェクトには、同じ関数を使用するサービス コントラクト メソッド (サービス) からもアクセスできます。同期は、Main 関数とサービス メソッドの間で行われます。サービスのインスタンスが作成されると、設計されたパフォーマンスで正確に 15 分間実行されます。その後、サービスから行われるすべての TryEnter(obj, timeout) 呼び出しは、指定されたタイムアウトの期限が切れた後に false を返します。ただし、これは Main 関数で行われる TryEnter 呼び出しには影響しません。つまり、常に true を返します。サービス調整属性 maxConcurrentCalls="1" と組み合わせて、InstanceContextMode、ConcurrencyMode の設定を変更しようとしました。maxConcurrentSessions="5" であり、すべての構成で同じ効果が得られました。ホストアプリを再起動すると、サービスは再び応答しますが、アプリの実行中にホストを強制的に閉じて再度開くと、応答しなくなります (サービスインスタンスはメモリに残ります)。呼び出しがサービス インスタンスに到達しない場合のように、サービスが利用できない場合ではありません。メソッドが呼び出され、メソッドのクリティカル セクションに先行する TryEnter 呼び出しでその実行が行われ、TryEnter はタイムアウト (15 秒) 後に false を返します。TryEnter と Exit の組み合わせを確認し、二重に確認しました。クリティカル セクションが終了すると、メソッドは常にロックを解放します。ロックを使用しないその他のコントラクト操作または問題のオブジェクトは、15 分間の期間が終了した後でも正常に機能します。TryEnter と Exit の組み合わせを確認し、二重に確認しました。クリティカル セクションが終了すると、メソッドは常にロックを解放します。ロックを使用しないその他のコントラクト操作または問題のオブジェクトは、15 分間の期間が終了した後でも正常に機能します。TryEnter と Exit の組み合わせを確認し、二重に確認しました。クリティカル セクションが終了すると、メソッドは常にロックを解放します。ロックを使用しないその他のコントラクト操作または問題のオブジェクトは、15 分間の期間が終了した後でも正常に機能します。

よろしくお願いします。ハッピーホリデー!