7 月の .NET Framework 向けの更新プログラムを適用すると Classic ASP アプリケーション内での .NET Framework で開発された COM のインスタンス生成で問題が発生する可能性があります

こんにちは。Internet Information Services (IIS) サポートです。 今月公開いたしました .NET Framework 向けの更新プログラムを適用すると、後述の問題が発生する場合があることが確認できています。 本 Blog で現象の概要と、現時点で判明している対応策についてご案内します。   [ 問題の概要 ] 2018 年 7 月公開の .NET Framework 向けの更新プログラムを適用後、Classic ASP 内で .NET Framework で開発された COM オブジェクトのインスタンスを生成時に問題が発生し ASP アプリケーションが異常終了する場合があります。 現在影響の確認ができている更新プログラムは下記のとおりです。 Windows Server 2008 Windows Server 2008 用の .NET Framework 2.0 SP2、3.0 SP2、4.5.2、および 4.6 のセキュリティおよび品質ロールアップ (KB 4340007) Windows Server 2008 用の .NET Framework…

0

Windows Server 2016 における IIS 6.0 マネージャーの不具合

Windows Server 2016 におけるインターネット インフォメーション サービス (IIS) 6.0 マネージャーの不具合についてお知らせいたします。   Windows Server 2016/IIS 10.0 の設定を行う際は インターネット インフォメーション サービス (IIS) マネージャー を利用しますが、SMTP の機能 (※) を利用するために インターネット インフォメーション サービス (IIS) 6.0 マネージャー=  IIS 6.0 マネージャー というアプリケーションが残されています。 Windows Server 2016  では、この IIS 6.0 マネージャーを終了する際に、イベント ログに以下のようなエラーが記録される場合がございます。     このエラーは IIS 6.0 マネージャーのモジュール inetmgr.dll を実行する mmc.exe が異常終了したことを示していますが、IIS 6.0 マネージャーの終了時にのみ発生している場合には SMTP…

1

Web Deploy ツールを利用した IIS の移行方法

こんにちは。 日本マイクロソフト、Microsoft Japan IIS / Azure Bot Service Support Team の鈴木です。   今回は Web Deploy ツールを利用した IIS の移行方法をご案内します。   IIS 7.5 から IIS 10.0 へ、といった IIS の環境を別のマシンへ移行する場合にご利用いただけるツールとして、Web Deploy (Web 配置) ツールがあります。   Web 配置ツール https://technet.microsoft.com/ja-jp/library/dd939114.aspx   移行時にモジュールの依存関係などの確認も可能であり、弊社ではこのツールを利用した移行を推奨しております。     Web Deploy で移行可能な範囲について ================================== Web Deploy を利用した移行により実現可能な範囲は以下の通りです。   a) IIS の構成 b) コンテンツのコピー   一方、アプリケーションの構成により別途対策が必要な部分として以下の要素が考えられます。  …


Bot 作成時に “Authorization_RequestDenied” エラーが出力される

こんにちは。 日本マイクロソフト、 Microsoft Japan IIS / Azure Bot Service Support Team です。   昨年 Azure Bot Service が 祝 GA され、Bot に関するお問い合わせも多くいただくようになりました。 ご利用いただき、誠にありがとうございます。 本 Blog にて色々と情報公開していきたいと思いますのでよろしくお願いいたします。     今回は、Bot 作成時に以下のような “Authorization_RequestDenied” エラーが表示される場合にご確認いただきたいポイントをご紹介します。     このようなエラーが表示されて Bot が作成できない場合、まずは以下のポイントをご確認ください。   1) サブスクリプションの状態 2) AAD (Azure Active Directory) の権限     1) サブスクリプションの状態 ==================== 本エラーはBot Service特有のエラーではなく、Azure 上で WebApp…


MSDTCを動作させるために必要な設定について

こんにちは。 日本マイクロソフト、Microsoft Japan IIS / Azure Bot Service Support Team の中島です。   今回は、IIS とは異なりますが、Web アプリケーションでもよく利用される MS DTC (Distributed Transaction Coordinator) を介した分散トランザクションを実行する際、MSDTC を動作させるために必要な構成や設定について案内します。   「MSDTC の設定をしてみたけど、うまく動かない」「アプリケーションを動かしたら、分散トランザクションが失敗したことを示すエラーが記録された」といったことがありましたら、下記の設定が正しくできているか、まずは確認してみてください。   MSDTC を介した分散トランザクションが正常に動作するには、以下の 5 つが必要になります。 1. MSDTC サービスの起動を確認する 2. MSDTC のセキュリティ設定をする 3. MSDTC が利用するポートを空ける 4. NetBIOS 名での名前解決可否を確認する 5. CID の一意性を確認する     1. MSDTC サービスの起動を確認する ============================== MSDTC は Windows のサービス…


IIS の Server ヘッダーを消去する

こんにちは!IIS サポートの月尾です。 今回は、お問い合わせいただくことの多い IIS の Server ヘッダーを隠ぺいする方法についてご紹介します。 IIS をご利用で、ホストしている Web サーバーや、そのバージョンが判明してしまうとセキュリティ上望ましくないとの診断を受けたり、Server ヘッダーでクライアントに返される情報を隠したいという方は、どうぞ最後までお目通しいただけますと幸いです。   まず、IIS が返す HTTP ヘッダー内の Server ヘッダーには、以下の 2 種類があります。   ———-    1. IIS 自身が返す Server ヘッダー (Server: Microsoft-IIS/<version>)    2. HTTP 通信を管理するドライバである http.sysが返す Server ヘッダー (Server: Microsoft-HTTPAPI/<version>)   通常は、1. の形式の Server ヘッダーが使用されます。 HTTP.sys にてエラーが発生した場合などで IIS にて処理されなかった場合には 2.の形式の応答が使用されます。 ———-   上記それぞれについて、隠ぺいする方法をご紹介します。    …


“X-Forwarded-For” ヘッダーを IISログに出力したい!

こんにちは。 日本マイクロソフト、IIS サポートの鈴木です。 今回は、お問い合わせの多い、HTTP の拡張ヘッダー ” X-forwarded-For ” をログに出力する方法をご紹介します。   ※X-Forwarded-For (XFF) は、HTTPヘッダーフィールドの一つです。 HTTPプロキシサーバー、または、負荷分散装置(ロードバランサ)を経由して、ウェブサーバーに接続するクライアントの送信元IPアドレスを特定する際に使用されます。   イメージはこんな感じです。   ” X-Forwarded-For ” の ログ出力方法 ” X-Forwarded-For ” をログに出力するには、以下の方法があります。 1. Advanced Logging ※IIS 7.0 以降 2. Enhanced Logging ※IIS 8.5 以降 3. ARR Helper ※IIS 7.0 以降 4. サードパーティ製の ISAPI フィルター(F5XForwardedFor)   <<お選びいただく際のポイント>> IISのバージョンによって、お使いいただける機能が異なります。 Windows Server 2012 R2…


Application Initialization 機能有効化時に HTTP Module 内でサーバー変数を取得すると発生する問題について

こんにちは。 日本マイクロソフト、CSS デベロッパー ツールズ AppPlat の神田一行です。 今回は IIS に古くから存在する ISAPI モジュールと IIS 8.0 で標準搭載された Application Initializationを組み合わせて利用した際に発生する可能性があるトラブルについて、お伝えさせていただきます。 Application Initialization について IIS は、既定でサービス開始直後にワーカープロセスを起動しません。ユーザーからのリクエストを受けてからワーカープロセスを起動し、その中で ASP.NET の初期処理などを行っています。結果、最初にリクエストを行うユーザーは、通常時と比べて応答に時間がかかる (初期化が完了するまで待たされる) こととなります。 この初回リクエストにかかるコストを軽減するための機能として Application Initialization が提供されており、自動的にワーカープロセスを起動させる機能と、仮想的な要求を内部的に発行し、該当の初期化処理を事前に終わらせる機能、の組み合わせで実現されています。 症状 IIS 上にホストしたページにアクセスした際、ブラウザーからの応答が無くなる、もしくは、503 Service Unavailable エラーが表示されます。 また、IIS サーバー上のイベントログに以下の様なログが繰り返し記録されます。 条件 本事象は、次の条件を全て満たすことで発生します。 Windows Server 2012 から標準機能として搭載された Application Initialization を役割サービスから有効にする Web サイトやアプリケーションの詳細設定において、”有効化されたプリロード” が True となっている 処理の過程で “UNENCODED_URL” サーバー変数を参照する ISAPI…


IIS7 以降の静的コンテンツの圧縮について

こんにちは。日本マイクロソフト、CSS デベロッパー ツールズ AppPlat の月尾です。 今回は、静的コンテンツの圧縮が行われる条件の一つとして、コンテンツへのアクセス頻度が関連していることについてお知らせいたします。 静的コンテンツの圧縮の設定について 静的コンテンツの圧縮を有効にするためには、以下の設定が必要となります。 1. Web サーバーの役割サービスから、[パフォーマンス] – [静的コンテンツの圧縮] を有効にします。 HTTP 圧縮 <httpCompression> – セットアップhttps://technet.microsoft.com/ja-jp/library/ee431600.aspx#ghi 2. IIS マネージャーで、サーバーを選択した状態で、機能ビューにある [圧縮] から以下の設定を行います。    [静的なコンテンツの圧縮を有効にする] : チェックを入れます   [次の値より大きいファイルのみ圧縮する (バイト)] : 圧縮を行いたいファイルの最小のサイズを設定します   [キャッシュ ディレクトリ : 圧縮を行ったファイルの保存先のディレクトリを設定します 圧縮を構成する (IIS 7)https://technet.microsoft.com/ja-jp/library/cc730629(v=ws.10).aspx 3. 圧縮を行う対象のコンテンツ タイプを追加します。 IIS 7.0 で HTTP 圧縮対象のコンテンツ タイプを追加する方法https://support.microsoft.com/ja-jp/kb/969062 静的な種類 <staticTypes>https://technet.microsoft.com/ja-jp/library/ee431653.aspx 静的コンテンツの圧縮の確認方法について 上記を設定した状態で実際に静的コンテンツにアクセスしてみます。この際、IE の F12 開発者ツールや、Fiddler…


ASP.NET 3.5 までの TextBox コントロールを MultiLine で使用した場合の障害について

こんにちは。日本マイクロソフト、CSS デベロッパーツールズ AppPlat の伊東です。今日はASP.NET 3.5 の障害について紹介させて頂きます。 概要 ASP.NET 3.5 までの TextBox コントロールを MultiLine で使用した場合、Text プロパティ冒頭の改行コードが、ポストバックによって取り除かれます。 詳細 以下のように、.aspx に Button コントロールと TextBox コントロールを配置します。     <form id="form1" runat="server">         <asp:Button ID="Button1" runat="server" Text="Button" />         <asp:TextBox ID="TextBox1" runat="server" TextMode="MultiLine"></asp:TextBox>     </form> 以下のように、Page_Load イベント初回にて、TextBox コントロールの Text プロパティに、冒頭に複数の改行を含めた文字列をセットします。     protected void Page_Load(object sender, EventArgs e)     {         if…