WCFサービス上でシングルトンのクラスを利用するとインスタンスは共有されますか?

投稿者: Anonymous 掲題の件、WCFサービスのクラスでシングルトンのクラスを利用しようとしています。 その場合、AサービスでシングルトンのクラスSを生成した後、 Bサービスで再びSのインスタンスを取得した場合、Aサービスで取得したSのインスタンスと Bサービスで取得したSのインスタンスは同一のインスタンスとなりますか? WCFサービスが動作するJavaでいうとTomcat上で動作しているイメージがあるので、 上記のような場合、どうなるのか知りたいです。 なお、ここで言っているシングルトンのクラスとはWCFサービスのシングルトンサービスの ことではありません。例えば、InstanceContextMode.PerCallやPerSessionのサービス内で シングルトンクラスを利用した場合の話になります。 よろしくお願いいたします。 解決 単純にstaticフィールドを利用してシングルトンパターンを実装している場合の動作ということでしょうか。これは各サービスのホスティング状況によります。 staticフィールドのスコープはAppDomainですので、AppDomainもしくはより上位のホスティングしているプロセス(IISであればワーカープロセス)が変化している場合は値が共有されません。IISの同じアプリケーション上にサービスを配置して1サーバーで動作させる場合であれば、プロセスがリサイクルされると値がリセットされることなります。これは標準設定だと20分ごとに発生します。 ですので数分間有効な簡単なキャッシュ程度であれば通常のシングルトンパターンを利用できますが、確実性を求めるのであればDBその他のバックエンドを利用した方が良いです。 回答者: Anonymous

Instalar Proyecto de Laravel IIS 8 Windows Server 2012

publicado por: Anonymous Estoy implementando un proyecto laravel en IIS 8 Windows Server 2012. Pero tengo problemas para que las rutas funcionen. Puedo ver el index pero cuando quiero acceder a una vista me devuelve error 404. Alguien ha tenido experiencia haciendo esto? solución Ya esta solventado. Para quienes quieran hacerlo y no morir en…(Continue Reading)

No se puede conectar con el servidor web de desarrollo configurado

publicado por: Anonymous Hace unos días tuve que formatear mi computadora por unos problemas con Windows 10, al reinstalar Visual Studio 2015 y tratar de correr unos proyectos de servicios web, me lanza ese mensaje de error que desconozco completamente de qué se trate. Espero alguien pueda ayudarme con esto, me urgen esos servicios. Actualización…(Continue Reading)

Error Con iis Express!

publicado por: Anonymous Al intentar pasar un proyecto completo a otra PC, cuando lo ejecute, me da este error! ya Intente cambiar El puerto en Propiedades/Web y aun sigue con el mismo problema. solución Junto con tu archivo .SLN generalmente existe una carpeta oculta llamada .vs, borrala. Para hacerlo sigue estos pasos: Cierra Visual Studio…(Continue Reading)

IIS起動をトリガに処理を走らせる事はできますか?

投稿者: Anonymous global.asaxのvoid Application_Start(object sender, EventArgs e)に処理を書いておくと、アプリケーション起動時というか、そのサイトに初めてアクセスがあったタイミングで処理が走ってくれると思います。 が、そうではなく、IISの起動やサイトの起動、アプリケーションプールの起動をトリガに処理を行わせるような仕組みはあるのか?という質問です。 何か手段がありましたらご教示願います。 Windows Server 2008R2 IIS 7.5 解決 アプリケーションプールとサービスを常時起動に設定したうえで、IProcessHostPreloadClientを実装してアプリケーションに登録すると起動時にメソッドが呼び出されるようになります。 まず適当なアセンブリでSystem.Web.Hosting.IProcessHostPreloadClientを実装します。 using System; using System.Web.Hosting; public class ProcessHostPreloadClient : IProcessHostPreloadClient { public void Preload(string[] parameters) { // ここに処理を記述する } } それから、アプリケーションプールのstartModeをOnDemandからAlwaysRunningに変更します。 使用するIProcessHostPreloadClientはMachine.configのsystem.applicationHost/serviceAutoStartProvidersに登録する必要があります。 プロバイダーとサイトを関連付けるには、アプリケーションの構成を設定する必要があります。system.applicationHost/sites/site/applicationのserviceAutoStartEnabledをTrueにしたうえで、serviceAutoStartProviderに先ほど登録したnameを指定します。 ※上の画面を出すにはサイトとアプリケーションで「…」ボタンを押してコレクションエディターを開く必要があります。 ここまで設定すると、IIS起動時にPreloadが呼び出されるようになります。 回答者: Anonymous

PHPでアプリ毎にセッションを分離する

投稿者: Anonymous サーバはWindows2012/IIS8/PHP5.6です PHPのアプリを複数作成し同一のサーバないで動作させていますが、 アプリ毎にセッションを独立させる方法がわかりません そのため、同一マシンからアクセスした際、 違うアプリ同士でも同じセッションIDを使用してしまうともう片方のアプリからセッション内容を上書きされてしまいます C:PhpAppAppA C:PhpAppAppB として、アプリをAppA/AppBと作成し、IIS上からはそれぞれ別アプリとして設定しています ただ、PHPにはその設定を反映させる方法がわからず、 PhpAppという全体で一つのアプリとして認識されているようです 解決 目的(ゴール)がちょっと分からないのですが、 アプリ毎にセッションを分けたいって事で良いですかね? 多分、同一のPHP設定になっているから同じセッションの保存先を見るのかと思いますが…… セッションファイルの保存先は php.iniに記述されているsession.save_pathの項目で決まっており 設定が同じであれば同じセッションを呼び出します。 ですので、php.iniが別々に分かれているのであれば上記項目を変更しましょう。 もし同一であればセッションファイルを保存しているディレクトリをアプリ毎に変更する必要があります。 また変更する際の注意ですが、 セッション関連の設定を変更する際は、必ずsession_start();の前に行う必要があります。 //セッションファイルの保存先を変更。アプリ毎にディレクトリ変更すれば良い。 //(普通は”tmp”に保存される。”tmpappa”でセッションディレクトリ下に置いた方が管理しやすい) session_save_path(‘C:PhpAppsessionappa’); //OR session_save_path(‘C:PhpAppsessionappb’); //GC設定を変更 //GC使う ini_set(‘session.gc_probability’, 1); //セッション破棄確立1/1000 ini_set(‘session.gc_divisor’, 1000); //セッション有効期限(秒):1時間 ini_set(‘session.gc_maxlifetime’, 60 * 60); //セッション開始 session_start(); 正直なところ、 どういった値か不明なのでセッションを使う意図すらも分からないのですが 同一設定環境下で実行するなら、自分は上記みたいにセッションの保存先を変更するのではなく Key名にアプリ名の略称でも使い接頭辞を付与して同じセッションIDで管理します。 理由としては、アプリを変更する度にセッションファイルが変わり GCが動くまでゴミデータが増えるからですかね…… 1ユーザに対してセッションファイルは出来るだけ1つで済ませたいものです 追記: でもunaristさんの回答も踏まえて考えたけど 結局の所、コード中でアプリ判定するなら 態々php.iniの設定変えてまで セッションファイル1つ余計に増やす必要性無いと思うんだよね key名分ければいい話なんだし………(Continue Reading)

WEBアプリからローカルにファイルを書き込む方法。

投稿者: Anonymous 概要 環境: Windows10 & IIS 言語: C# IISにデプロイしたWEBアプリからローカルにファイルを書き込みたいのですが、どのようにすべきか悩んでいます。 なにかノウハウがあればご教示いただけますでしょうか。 詳細 IISにおけるWEBアプリの実行ユーザはアプリケーションプールといわれるものになる認識です。 具体的に今は以下のような状態になっています。 Windowsのログインユーザは「tarou」 当該アプリのアプリケーションプールは「DefaultAppPool」 そこで、WEBアプリから C:\Users\tarou\AppData\Local\Temp といったフォルダにファイル書き込みを含むアクセスをしたいのです。 上記フォルダに「DefaultAppPool」ユーザのアクセス権を追加する。 元から「tarou」と「DefaultAppPool」のアクセス権が存在する場所にファイルを書き込む その他 「1」はインストールの手間なので、避けたいと思っています。 「2」は単純にどこなのかつきとめられていません。。 「3」で良い手があれば。。 WEBアプリがtarouとして実行できればそれでも良いのかもしれません。 しかし、インストーラはinstallshield limited editionで作成しておりますので、その範囲でデプロイできることがよいなぁと思っています。。わがままかもしれませんが。。 解決 解決しました。 以下のURLを参考にアクセス権の追加をインストール手順に加えました。 https://msdn.microsoft.com/ja-jp/library/aa954062.aspx 具体的にはIISマネージャーで対象のWEBアプリの「認証」機能から「ASP.NET偽装」にユーザを設定しました。今回の例では「tarou」を追加したことになります。 インストーラはInstallshieldのままで、ユーザには上記手順を実施頂くこととしました。 回答者: Anonymous

IISの接続数制限について

投稿者: Anonymous IISの接続数制限について、何か正式なドキュメントまたはそれを定義している情報をご存じであればご教授ください。 インターネットで探してはいるのですが、色々な記事があり、どれが本当なのか疑わしい状態です。。 ちなみに知りたいのはWindows 7, 8.1, 10のクライアントOSのIISについてです。 よろしくお願いします。 解決 IIS の違いについては情報を持っていませんが、サーバ OS とクライアント OS の違いなら。 Windows XP の場合 C:Windowssystem32eula.txt Windows 7, 10 の場合 C:Windowssystem32licence.rtf (Windows 8, 8.1 は手元にありません) によるとクライアント OS をサーバ的利用する場合は接続数に上限があるとのことです。 XP の場合 10 接続 7, 10 の場合 20 接続が上限です。 管理者権限で net config server コマンドを起動してもそのことが確認できます。 IIS 側に制約が無くても OS (のライセンス同意書) による制約があるというわけです。 TCP/UDP レベルでの socket 1つを「接続」と呼ぶらしいので、制約としては結構きついですね。…(Continue Reading)

IIS7.5での静的コンテンツへのアクセス制御方法

投稿者: Anonymous タイトルについてですが、 求められていることは次の通りとなっております。 1.ドメイン以下に静的コンテンツのパスを指定してアクセスできる。 2.ログインしていない場合には準備されている動的コンテンツのログインページに遷移する(Login.aspxなど)。 3.各ファイル毎にユーザごとのアクセス権限が設定されている(ユーザと権限のマップはDB) 4.ログイン状態はセッションで維持 これについて次の様に実現しようとしました。 1.Web.configにてハンドラの設定 2.ハンドラでログイン状態、アクセス権限を確認し、問題なければ静的コンテンツを返す 具体的なコードとしては以下の様になっております。 ・Web.config <system.webServer> <handlers> <add name=”Handler” verb=”*” path=”*.*” type=”WebApplication1.Handler” /> </handlers> <modules runAllManagedModulesForAllRequests=”true” /> </system.webServer> ・ハンドラ using System.IO; using System.Net; using System.Web; using System.Web.SessionState; namespace WebApplication1 { public class Handler : IHttpHandler, IRequiresSessionState { public void ProcessRequest(HttpContext context) { if (!context.Request.Path.Contains(“.aspx”) && CanAccess()) {…(Continue Reading)

PHP で「No input file specified.」

投稿者: Anonymous どの時期からかわからないのですが、今まで使えていた PHP on FastCGI for IIS 10 で標記エラーが出るようになりました。よくあるセキュリティ関連も調査しましたが問題なく、上位フォルダからセキュリティを一括上書きも効果ありませんでした。ディスクチェックも済です。 PHP は 5.3 / 5.6 も試しましたが、error_log が書かれないため、なんとなくですが処理が PHP まで届いていない気がします。 また、同じ上位フォルダから新しいフォルダを作成し、そこに PHP を置いたら問題なく動いたため、今は業務上の問題は無くなりましたが、問題のあるフォルダは気になるので調査用として残してあります。他に何か調査できるものはありませんでしょうか? 解決 こちらですが、別の不具合で再インストールすることになったときにわかりましたが、 ハードリンクが設定されており、参照先のリンクが見えなくなったのが原因で 参照できていなかったようです。 以降の調査ができなくなってしまったので、こちらはクローズします。 回答者: Anonymous

Error al publicar aplicación web ASP.NET en IIS

publicado por: Anonymous Tengo el siguiente error al hacer publish a una página web en el iis de mi maquina local, si hago debug funciona bien pero no al publicar desde Visual Studio, si copeo la carpeta del proyecto funciona sin ningún problema pero no puedo pasar los archivos al servidor ya que no hay…(Continue Reading)

¿ Como desinstalar IIS de Windows Server 2012 R2, para volver a instalarlo?

publicado por: Anonymous Tengo un problema con IIS ya que me sale un error con un mensaje del modulo WebSocketModule Código de error 0x80070490 cuando lo llamo desde localhost para probar su funcionamiento. He comprobado que el rol del IIS “Protocole WebSocket” aparece como instalado pero al buscarlo en la herramienta IIS dentro en el…(Continue Reading)

IISで使用可能なメモリを増やしたい

投稿者: Anonymous タイトルの件、IIS上で動作するASP.NETのWEBアプリ(C#)で大量のデータを SQL Serverから検索して、処理しています。 Webアプリで大量のデータを扱うのは設計が悪いということはわかっておりますが、 件数が増えるにつれて、メモリ領域の確保に時間がかかり検索速度が大幅に遅くなってしまう 状況です。 動作環境は以下となります。 Windows Server 2012 R2 IIS 8.5 メモリ 32GB SQL Server 2016 Standard Edition SQL Server も複数インスタンスが同じサーバ上で動作(同居)しており、 リソースモニタで確認すると30GB程度使用中となっています。 IISの利用しているアプリケーションプールの プライベートメモリ制限と仮想メモリ制限は、0で設定しており、 無制限の認識です。 少しでも状況を改善したいと思っておりますが、単純にメモリを増設すれば IISが利用できるメモリも増えると考えて問題ないでしょうか? 知見があるかたご回答いただけますと幸いです。 解決 XY問題ではないでしょうか? Webアプリで大量のデータを扱うのは設計が悪いということはわかっておりますが、件数が増えるにつれて、メモリ領域の確保に時間がかかり検索速度が大幅に遅くなってしまう状況です。 「件数が増えるにつれて、検索速度が大幅に遅くなってしまう」は疑う余地のない観測された事実と思います。しかしその原因が「メモリ領域の確保に時間がかかり」であると特定できているのでしょうか? 当たり前ですが原因でなかった場合、メモリを増設してもメモリが増えるだけで速度は改善しません。 ですので、原因を特定することをお勧めします。 「大量のデータを扱うのは設計が悪いということはわかっております」との記述はプログラムを修正しない前提でしょうか? であれば、ディスクに負荷がかかっているのであれば高速なSSDを、ネットワークに負荷がかかっているのであれば10GbEを、と対策を取るべきです。 回答者: Anonymous