みみたんのブログ

日記程度のことを。

Hyper-Vが起動しようとすると0x80070490とか出て起動しない。

自宅サーバー運用中に気付いたのだが、12/24にTFS(TeamFoundationServer)につながらないことが判明して、原因を探ってたらTFSが走っているHyper-V上でサーバーで落ちていた。
それで起動しようとしたが、、、0x80070490とか出て起動しない。
他のHyper-Vも落ちたので、Hyper-Vサービスの再起動等やっても起動しなかった。
(ただし、ホストOSの再起動まではしてない、もしかしたら・・・それだけで直ったかも。)
なお、SS撮り忘れたので英語だが、、、以下みたいなの。
http://flemmingriis.com/share-nothing-live-migration-element-not-found-0x80070490/:Share Nothing Live Migration Element not Found 0x80070490 - Flemming Riis

以下のサイトらへんが見つかった。
https://support.microsoft.com/ja-jp/help/2413735/after-a-new-hyper-v-vmms-certificate-is-generated-there-are-mouse-and:HYPER-V マネージャー コンソールを使用して仮想マシンを管理するときにマウスと画面の解像度の問題が認識される新しい HYPER-V VMM の証明書が生成されると、

そして、自己署名が切れているのではと考えたので、以下のサイトのスクリプトを実行。
https://gallery.technet.microsoft.com/scriptcenter/be2da634-978b-48d7-b3ab-01c593c9d177/:スクリプト Create a Hyper-V VMMS self-signing certificate that doesn’t expire until 2050
(なお、Makecert.exeはVisualStudioをインストールしてるPCより一時的に拝借。)

ただ、残念ながらスクリプトを動かしただけだったら直らなかった。

その日解決無理かと諦めて、他用で自宅サーバーを再起動したら起動した・・・。。。
まだ、よくわかっていないが解決してしまった。
再発しなければいいが・・・

LINQ to SQLでDBML1005でコンパイルエラー(検証エラー)になった場合

さっき、プログラムを修正してたら、DBML1005でLINQ to SQLのDBマッピングがエラーになった。

具体的には以下のようなエラーで。

重大度レベル コード 説明 プロジェクト ファイル 行 抑制状態
エラー C:\Visual Studio\Projects\HomeServerSystem\WindowsApplication\ServerManagement\FileManagementSystem\FileManamagentSystemDataClasses.dbml での検証エラーのため、ビルドに失敗しました。ファイルを開き、[エラー一覧] に表示された問題を解決して、プロジェクトを再度ビルドしてください。 C:\Visual Studio\Projects\HomeServerSystem\WindowsApplication\ServerManagement\FileManagementSystem\FileManamagentSystemDataClasses.dbml 2
 

 (ファイルパスはいろいろだと思うが・・・)

 

しょうがないので、ファイルを開いてコンパイルしたら今度は以下のようなエラーが追加になった。

重大度レベル コード 説明 プロジェクト ファイル 行 抑制状態
エラー DBML1005: Type 'FileConentTypeData' の Column 'FileType' 内での DbType 'Int NOT NULL' と Type 'Mimitan.HomeServer2.FileManagementSystem.Api.FileType' のマッピングはサポートされていません。 0

以下のように指定していた。

f:id:mimitan_mobile:20180415162105p:plain

(なお、型は間違っていなかった。)

 

調べたら、以下の回答で基本的なことが抜けてた・・・

stackoverflow.com

「global::」を入れてなかったので名前空間の先頭がずれ、見つからなくなっていた。

なんとも基本的なことが抜けて、30分ぐらい悩んでしまった。

 

ActiveDirectory(ドメインコントローラー)でDNSを別に配置した場合(Bindで作った場合)

ActiveDirectory(ドメインコントローラー)を再構築したのですが、今までDNSはADサーバーと同一の場所に持っていてリレーするようにしていたのですが、再構築するにあたりそれはやめようと思い探してみました。

なお、ADサーバーは自宅サーバーのHyper-V上に作っており、もともとあるDNSサーバーは自宅サーバーにあります。

DNSサーバーはBind9を使ってます。(ほかのDNSサーバーでも応用できそうです、レコード指定が出来るならば。)

 

調べてみると、以下のような文章がありました。

ドメイン コント ローラーの SRV DNS レコードが作成されていることを確認する方法 : https://support.microsoft.com/ja-jp/help/816587/how-to-verify-that-srv-dns-records-have-been-created-for-a-domain-cont

まぁいつものとおり、日本語訳が機械翻訳だったので原文を参照してみます。

How to verify that SRV DNS records have been created for a domain controller : https://support.microsoft.com/en-us/help/816587/how-to-verify-that-srv-dns-records-have-been-created-for-a-domain-cont

そうすると、SRVレコードを設定すればできそうです。

以下でみると、Bindに設定すればいいとみたいなのでやってみる。

www.atmarkit.co.jp

ゾーンファイルに以下のように設定してやったらうまくできました。


$TTL 86400
@         IN SOA   example.com. example.com. (
                        2017010101    ; Serial
                        28800         ; Refresh
                        14400         ; Retry
                        3600000       ; Expire
                        86400 )       ; Minimum
                        
          IN NS    example.com.
          IN MX    10 example.com

_Ldap._tcp.dc._msdcs.example.com.   IN  SRV 1   0   389  adserver.example.com.



@         IN A     192.168.1.1
@         IN AAAA  0:0:0:0::11
*         IN A     192.168.1.1
*         IN AAAA  0:0:0:0::11

【メモ】WCFの参考URLリンクメモ

個人的な開発用参考URLリンクメモです。

 

WCFで大きなデータを送受信するさいに注意する設定値(クオータ)のメモ - Netplanetes

blog.jhashimoto.net

kazenetu.exblog.jp

WCF Test Client - increasing MaxReceivedMessageSize

【購入メモ】うごく、しゃべる、並列化する。 1/8タチコマ SPECIAL EDITION

以下の物を購入。。。

cerevo.shop-pro.jp

そうそうに予約し、9/25に配達され、10/1に開封、動かしてみた。

こんな感じ。

f:id:mimitan_mobile:20171001163008j:plain

ちなみにタチコマの目(カメラ)の黒いのは前面の1つ(本当にカメラ)以外はシールで貼り付ける(まだ貼っていない。)

 

こんな感じで動作する。。。

youtu.be

 

ちなみにこれ、弟も買ったので家に2台あることになる。

(同一のSPECIAL EDITIONが。)

SQLServerの利用率モニターにて「PILEGATHEREEMPTIVE_OS_WRITEFR」で長時間の待ちが発生している

自宅サーバーのログシステムが、DBに書き込まれて行かないので調査したことろ以下の利用率モニターの「現在の待機の種類」にて「PILEGATHEREEMPTIVE_OS_WRITEFR」が発生していた。

 

SQLServerの利用率モニターが以下。

f:id:mimitan_mobile:20170811025948p:plain

 

利用率モニターの「現在の待機の種類」は以下の内容を示すらしい。

sys.dm_os_waiting_tasks (Transact-SQL)

 

イベントログを調査すると、

ログの名前:         Application

ソース:           MSSQLSERVER
日付:            2017/08/08 0:15:32
イベント ID:       5144
タスクのカテゴリ:      サーバー
レベル:           情報
キーワード:         クラシック
ユーザー:          NETWORK SERVICE
コンピューター:       XXXX
説明:
データベース 'XXXXDataBase' のファイル 'XXXXDataBase' の自動拡張をユーザーが取り消したか、30006 ミリ秒でタイムアウトしました。ALTER DATABASE を使用して、このファイルの FILEGROWTH の値の設定を小さくするか、または新しいファイル サイズを明示的に設定してください。

 と残っていた。

 

ちょっと前に自動拡張のサイズを大きくしたことを思い出した。

 

上記の待機の種類について検索すると以下のようなのが見つかった。

sevenb.jp

これはDB復元時だが、ファイルの初期化とあるので拡張した際に初期化するのに時間がかかり、タイムアウトしていると考えた。

対策としてはInstat File Initialization(ファイルの瞬時初期化)を有効にしてやればいいそうだが、SQLServerの再起動が必要みたいなので、仮対策として自動拡張のサイズを小さくした。

一応、これで問題は解決した。

 

なお、Instat File Initialization(ファイルの瞬時初期化)を有効化は以下のようにできるそうだ。

sevenb.jp

 

【メモ書き】System.Xml.Serialization.XmlSerializerにてObsolete属性を付けたプロパティがデシリアライズされない

自分用のメモ書きです。

自宅サーバーのDB移行プログラムを作ってるときに見つけたのですが、

XmlSerializer クラス (System.Xml.Serialization)にてObsolete属性を付けたプロパティがデシリアライズされない現象があったのですが、

「オブジェクトが不要になったシリアル化、古い属性でマーク」に書いてあって、シリアライズ、デシリアライズされないみたいですね。

 

ついでに以下も。

weblogs.asp.net

どう対処しようかな・・・

そのプロパティだけXMLから直接取ってきてもいいんですが。。。

どうせ、DB移行プログラムなのでその後は使わないし。