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配置による発行の有効化」を行いデプロイの設定を行う。

(参考)



以上メモまで。

windows10でisoファイルのマウントが表示されない

エクスプローラー上でisoファイルを選択しても、リボン上に「ディスクイメージツール」タブが表示されなくなってしまいました。
これはisoファイルの関連付けがエクスプローラーでなくなってしまった事が原因です。
isoファイルを右クリック→プロパティ→プログラムの「変更」をクリック→関連付けをエクスプローラーにするとディスクイメージツールタブが復活します。

以上メモまで。

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年8月15日火曜日

SQL SERVER でデータベースのコピー

1.SQL Server インポートおよびエクスポートウィザード


SSMS(SQL Server Management System)から利用する場合、
データベースを右クリックし、[タスク] → [データのインポート] または [データのエクスポート] をクリック

MSDN:SQL Server インポートおよびエクスポート ウィザードを実行する


2.bcpユーティリティを使う


MSDN:bcp ユーティリティ

TechNet:bcp ユーティリティ


3.デタッチ→アタッチ


SSMSでデータベース名を右クリック→タスク→デタッチ
該当のデータベースのldfファイルとmdfファイルをコピーし移行先に配置。
移行先のSSMSでデータベースを右クリック→アタッチから配置したmdfファイルを選択

MicrosoftDocs:デタッチとアタッチを使用してデータベースを移動する方法

ちなみにオフラインにしてバックアップするやり方は問題が生じる可能性があるとのことです。
SQL Server でオフライン バックアップおよびオフライン リストアを行うと問題が出ることがある


4.バックアップ→リストア


SSMSでデータベース名を右クリック→タスク→バックアップからバックアップファイルを作成し、移行先に配置。
移行先のSSMSでデータベースを右クリック→「データベースの復元」または「ファイルおよびファイルグループの復元」を選択
配置したファイルを選択し復元する。
なお「オペレーティング システム エラー 5(アクセスが拒否されました。) 」が出てしまう場合
コンピュータの管理→サービス→当該のSQL SERVERを右クリック→プロパティ→ログオンタブでローカルシステムアカウントを選択

下記を参照するとVSS WRITERがローカルシステムアカウントを要求するのが原因っぽいですが、ローカルシステムアカウントのような強い権限を使用するのは推奨されなさそうです。
MSDN:Windows サービス アカウントと権限の構成


5.スクリプト作成→実行


SSMSでデータベース名を右クリック→タスク→スクリプトの生成→ウィザードを進めた先の詳細設定をクリック→
スクリプト作成の詳細オプションのスクリプトを作成するデータの種類を「スキーマのみ」から適宜「スキーマとデータ」に変更→
ファイル、クリップボードなど用途に応じた形式で保存し、コピー先のデータベース上でスクリプトを実行

スクリプトなので改変が容易などのメリットがありますが、データが大きいとスクリプトが実行できない場合があります。



他にも方法があるかもしれません。
用途や環境に応じて検討する必要がありそうです。
以上メモまで。