ラベル IIS の投稿を表示しています。 すべての投稿を表示
ラベル IIS の投稿を表示しています。 すべての投稿を表示

2021年3月13日土曜日

【IIS】Web Deploy のおさらい

公式の解説は以下などを参考


0. 手順

1. IISのインストール

2. Microsoft Web Deploy のインストール

3.IIS マネージャーユーザーの追加

4. 管理サービスの委任

5. 管理サービスの起動

6. ユーザーの設定を変更

7. ファイアウォールの設定

8. その他セキュリティの設定

9. 出力ディレクトリのパーミッションの設定

10. Web配置による発行の有効化

11. Visual Studio から発行



1. IISのインストール

「役割と機能の追加」からIISをインストール




2. Microsoft Web Deploy のインストール

以下ページからMicrosoft Web Deploy 3.6 をダウンロード

https://www.microsoft.com/ja-jp/download/details.aspx?id=43717




「完全」を選択してインストール



3.IIS マネージャーユーザーの追加

IIS マネージャーを開きIISマネージャーユーザーを追加





4. 管理サービスの委任

WebDeployをインストールした時点で適切な設定になっていると思いますが確認

「WDeployConfigWriter」と「WDeployAdmin」というユーザーが自動で作成されている



5. 管理サービスの起動


ポート変更などを行う場合はここで行う



6. ユーザーの設定を変更

先ほど自動生成されたユーザー「WDeployConfigWriter」と「WDeployAdmin」の設定を変更する

「コンピューターの管理」ツールを起動しユーザーの一覧を表示する


両ユーザーについて、右クリック→プロパティでプロパティ画面を開き「パスワードを無期限にする」にチェックを入れる

(この設定は絶対に必要という訳ではありませんが、パスワードの期限切れである日突然デプロイが出来なくなりハマる事があります)


また、ここで両ユーザーのパスワードを変更した場合は、IISマネージャーの「管理サービスの委任」から、両ユーザーが割り当てられている規則の「編集」画面を開き、「資格情報の指定」からパスワードを設定します。



7. ファイアウォールの設定

Windows Defender ファイアウォールの設定画面を開き、「受信の規則」→「新しい規則」からデプロイのポート(デフォルトだと8172)を追加する








8. その他セキュリティの設定

ホスト先のサーバーの設定によりますが接続ポートの許可設定などを行います

例えばAWS EC2 であればセキュリティグループの「インバウンドルール」にポートの許可設定を追加します



9. 出力ディレクトリのパーミッションの設定

IISマネージャー、あるいはエクスプローラーから当該ディレクトリの「アクセス許可の編集」を行います


「LOCAL SERVICE」 にフルコントロール権限を与えます



10. Web配置による発行の有効化

IISマネージャーで設定したいサイト上で右クリック→展開→Web配置による発行の有効化を選択します

対象が配下のWebアプリケーションや仮想ディレクトリであっても親サイト上で行います



「発行アクセス許可を付与するユーザーを選択します」のところで先ほど作成したIISユーザーである「webdeploy」を設定します


「設定」を行うと指定した場所に設定ファイル(拡張子 .PublishSettings)が作成されます


11. Visual Studio から発行

Visual Studio のソリューションエクスプローラーで発行したいWebプロジェクトを右クリック→発行を選択します



先ほど出力した設定ファイルを読み込ませます


「編集」をクリックしてパスワードを設定します

サイト配下のアプリケーションや仮想ディレクトリに発行する場合は「サイト名」の箇所にスラッシュ区切りで当該ディレクトリを指定します

接続の検証を押下し、成功するとグリーンのチェックマークが表示されます





WebDeploy を解説してくれているサイトは結構あるのですが、ユーザーパスワードの期限やディレクトリのパーミッション権限などに言及されているのが少なく、自分がちょくちょくハマってしまうのでまとめてみました。

以上です。



2020年9月17日木曜日

MagicOnionはIISにはホストできない?

MagicOnionを試してみたくてIISにホストする方法を探しておりましたが… 

ASP.NET Core 3.0 アプリケーションは Windows Server 上の IIS でホストできますが、HTTP/2 の機能の一部がサポートされていないため、現在 IIS で gRPC アプリケーションをホストすることはできません。 この機能は、Windows サーバーの将来の更新の目標です。
アプリケーションは、Windows サービスとして実行できます。 または、.NET Core 3.0 ホスティング拡張機能の新機能により、 systemdによって制御される Linux サービスとして実行することもできます。

InProcessではなくOutOfProcessなら回避する方法があるのでしょうか。
いずれにしても別の方法を検討する必要がありそうです。疲れたのでここまで。

2017年8月28日月曜日

Web Deploy に失敗する

Web Deploy で IIS に発行しようとしたところ、「接続の検証」には成功しているのに以下のエラーが発生して失敗してしまいました。

重大度レベル コード カテゴリ 説明 プロジェクト ファイル 行 抑制状態
エラー Web Deploy タスクに失敗しました。((2017/08/28 17:33:28) リモート コンピューターでの要求の処理中にエラーが発生しました。)

(2017/08/28 17:33:28) リモート コンピューターでの要求の処理中にエラーが発生しました。
操作を実行できません。サーバー管理者に問い合わせて承認と委任の設定を確認してください。

サーバ側のエラーを確認したところ以下のようなメッセージが

トレース展開エージェントで例外が発生し、クライアントに伝達されました。
エラーの詳細:
Microsoft.Web.Delegation.DeploymentAuthorizationException: ユーザー '.\WDeployConfigWriter' にログオンできません。 ---> System.Runtime.InteropServices.COMException (0x80070532): ログオン失敗: 指定されたアカウント パスワードの有効期間が切れています。 (HRESULT からの例外: 0x80070532)


Web Deploy の設定をすると、ユーザアカウントに「WDeployAdmin」と「WDeployConfigWriter」というアカウントが作られるのですが、パスワードの設定がデフォルトで「ユーザーは次回ログオン時にパスワードの変更が必要」になっています。
これらのパスワードが期限切れになってしまい、上記のエラーとなったようです。
解決方法は以下の通り。

1.「WDeployAdmin」と「WDeployConfigWriter」のパスワードを再登録し、設定を「パスワードを無期限にする」に変更する。

2.IISマネージャからサーバの「管理サービスの委任」を開き、上記2アカウントが割り当てられているサービスの編集画面を開く。資格情報の指定の「設定」ボタンでパスワードの設定画面を開き1で設定したパスワードを入力する。

3.改めて「Web配置による発行の有効化」を行いデプロイの設定を行う。

(参考)



以上メモまで。

2017年8月27日日曜日

セッション状態要求をセッション状態サーバーに対して作成できませんでした。

セッション状態要求をセッション状態サーバーに対して作成できませんでした。ASP.NET 状態サービスが開始されていて、クライアントとサーバーのポートが同じであることを確認してください。サーバーがリモート コンピューター上にある場合、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\aspnet_state\Parameters\AllowRemoteConnection の値を調べて、このコンピューターがリモート要求を受け付けることを確認してください。サーバーがローカル コンピューター上にあり、上記のレジストリ値が存在していないか 0 に設定されている場合、状態サーバー接続文字列ではサーバー名に 'localhost' または '127.0.0.1' を指定しなければなりません。

ここの情報を元にWeb.configの内容を


  
    
    
  


としていたのが原因でエラーの指示の通り「SampleStateServer」を「localhost」にすれば良いだけですが、
デプロイ先のテスト環境、リリース環境、および別の開発者の環境ではエラーが生じず、私の開発環境のみでエラーになり「?」となってしまいました。
もちろん私の開発環境のState Serviceは実行されており、再起動しても同様でした。

解決はしておりませんが、以上メモまで。

2017年7月27日木曜日

IIS, Classic ASP でサイトが重い

メール送信時にサイトが重いなぁと思っていたら、どうやらデバッグの設定に問題があったようです。

ASP のサーバー側のデバッグを有効にすると、ASP はシングルスレッド モードで実行されます。パフォーマンス上の理由から、製品環境での ASP のサーバー側またはクライアント側のデバッグはお勧めできません。

Microsoft TechNet オンライン:IIS 6.0 F1: [アプリケーションの構成] - [デバッグ] タブ
https://technet.microsoft.com/ja-jp/library/cc732003

また、初歩的なところでつまづいてしまった。
以上メモまで。

2011年8月15日月曜日

IIS7 「アプリケーションの追加」と「仮想ディレクトリの追加」の違い

IISでWebサイトを立ち上げて、そのサイトにサブシステムを追加する場合、
IIS5の時は「仮想ディレクトリの追加」にて行っていました。

IIS7では「アプリケーションの追加」と「仮想ディレクトリの追加」の
二種類が選択できるのですが、いまいちこの違いが認識できていません。

1つ分かったのは、
「アプリケーション」の時には親サイトのセッション情報と子サイトのセッション情報は
独立しており共有することができず、
 「仮想ディレクトリ」の時には親サイトのセッション情報と子サイトのセッション情報は
共有することができる。
・・・ ようです。

URL上はサブディレクトリのような形式だが、
「アプリケーション」の場合には独立したシステムであり、
「仮想ディレクトリ」の場合には包含したシステムである
・・・というような認識で良いのでしょうか(汗)。

もう少し調査が必要そうです。

IIS7 IP制限

サイトへのアクセスをIPアドレスによって制限したい場合に、
以前のIISでは
「サイト」→「右クリック」→「プロパティ」→
「ディレクトリセキュリティ」→「IPアドレスとドメイン名の制限」
から設定することが出来ましたが、IIS7ではインターフェースが異なるので
探すのに苦慮しました。

「サーバマネージャ」から設定するのですが、まず
「役割の追加」→「Webサーバー」→「セキュリティ」→「IPおよびドメインの制限」
から役割の追加を行う必要があります。
「役割の追加」が成功するとIISのサイトのメニューに
「IPv4アドレスおよびドメインの制限」が追加されますので、
そこで許可や拒否などの制限を設定することができます。

参考

2010年9月30日木曜日

IIS7 ファイルアップロード制限

Classic ASP を 2008 Server に移行して、
Webフォームからファイルのアップロードを行なったらエラーになった。
ASPがリクエストのエンティティボディとして受け取れる最大サイズが
デフォルトで200KBに制限されているためで、以下の手順でアップロード可能な最大サイズを変更した

IISマネージャ
→サイトを選択
→ASP
→制限プロパティ
→最大要求エンティティ ボディ制限