Visual Studio 2017で エラーが不意に発生する。

先日から、visual studio2017でエラーが発生するようになりました。

Visual Studio は例外を検出しました。拡張機能が原因である可能性があります。」

 

と表示される。そのたびにvisual studioを再起動していました。

 

[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\
   {73B7DC00-F498-4ABD-AB79-D07AFD52F395}InProcServer32]

の (既定) のデータを確認したところ、

 C:\Program Files (x86)\Common Files\Microsoft Shared\MSEnv\\TextMgrP.dll

になっていました。

 

なぜか最後のバックスラッシュが二つあります。

 

一つ削除すると、治りました。

CENTOS 7 Samba 設定変更後、アクセスできなくなる。 ユーザーごとのアクセス制御変更後。

業務時間終了ぎりぎりで、ファイルサーバを使用している人たちがいなくなるのを見計らって、編集し終わったsmb.conf等を保存して、systemctl restart smb nmb

再起動OK!

アクセスチェックもOK。となったところで、

念のため他のPCからもアクセスしてみると、これがアクセスできませんでした。

 

私のPCと他のPCがどう違うかというと、Sambaユーザーが私のPCは管理ユーザで、ほかのPCは一般ユーザということ。

smb.confを見直すが問題がない。。。。

 

しばらく苦しんでから発見しました。

ippan.conf を そういえば作成して放置してありました。

 

今回は新しいユーザ、newuserを作成し、newuserにはファイルサーバのあるフォルダのみ使用可能とする、という仕様を満たすために設定を変更していたのです。

次の流れで作業は進みました。

1 newuserにしか見えないフォルダの設定はわかるけど、逆?できないんじゃないの?

2   じゃあ、今ある共有フォルダを一度全部すべてのユーザーから使用不可にしておいて、ユーザごとのコンフィグで共有フォルダを使用可能にしよう。

3 じゃあまずは、ippan.confを作成します。

4 あ、逆に、使用可能なフォルダも、ユーザごとのコンフィグで使用不可にできるんじゃね?

5  ippanユーザが共有フォルダを見れない。。。 ← 今ここ

 

3で作成したippan.confが放置してあり、内容は共有フォルダ使用不可でした。

危険です。中途半端な作業は。

結局、newuser.conf で 使用不可にしたいフォルダの設定を上書きすることで実電できました。

RTX810 の DNS が 起動してしばらくすると反応しなくなる

社内ネットワークで、インターネット、メールセグメントを分割するために、RTX810を設置してIPマスカレードで、事務所ネットワークと接続することにしました。

 

事務所ネットワークセグメント 192.168.1.0/24 で

インターネット、メールセグメント 192.168.2.0/24  とします。

 

事務所ネットワークセグメントは、インターネット・メールセグメントにアクセスする必要がないので、あえてルーティングせずに、IPマスカレードで192.168.1.253にインターネットセグメントのIPを変換します。

 

というところまでは、前もやっていたので問題なし。

さて、今回はメールだけ通すフィルタを設定し、ほかの通信はすべて遮断します。

必要なのは、DNS の通信と、メール送信のサブミッションポートと、受信のポート(私のところは995でした)の通信を通すところ。

試行錯誤してできました!(これは次の記事で書きます。)

 

さて、様子を見ていると、しばらくするとなぜかメールの送受信ができなくなりました。? nslookup ~.co.jp でDNSの解決を試みると、なぜかタイムアウトします。

?? RTX810 を再起動してみると。 つながりました!・・・・またしばらくすると送受信でエラーが出ました。DNSも解決できなくなる。意味がわからないいい。

 

何を試してもうまくいかないので、クライアントPCのDNSサーバの設定を、事務所ネットワークセグメントのDNSサーバに設定すると、安定してくれました。

しかしなぜ、RTX810のDNS参照機能がダメなのか?????

 

次の日、いろいろ試しているうちに、事務所セグメント側からのPING に4回中の最初だけ反応して次からタイムアウトする現象に出会いました。

LANケーブルの不良か? ケーブルを抜き差しして確認しましたが、やはり症状は治まりません。

 

フリーズ(?)するタイミングは、再起動して一分くらい。

機器の不良(中古でした)を考えて、別のRTX810に設定を流し込んで試しましたが、

同じような挙動をします。

フィルタを一度はずし、IPマスカレードの設定も見直して、だんだん原因の範囲が狭まってきました。原因はわかりませんが、とにかくDNSが解決できないということですね。

show log reverse で何度もログをみましたが。

フィルタできちんとパスしています。が、戻ってこない。意味が分からない。

ここで一度整理します。

1 フィルタや、IPマスカレードの設定不備ではない。(フィルタは無効にした)

2 クライアント側の問題ではない。

3 RTX810が壊れているわけではない。

4 ログを見ると動作しているが、DNSの応答が返ってこない。

5 ケーブルの問題ではない。

6 RTX810のDNSの設定は問題ない。

 

さて、最初に疑われた1については、フィルタをオフにすることで原因ではないことが分かりました。IPマスカレードも問題なく動作しているように思えます。

 

次に2。そういえば、一つのイーサネットアダプタに複数のIPアドレスを設定すると、特定のIPと通信できなることがありました。(なぜかはわからない)

それを思い出して、IPを確認し、念のために他のネットワークアダプタは全て無効にしました。

さて、最も深く疑った3の、RTX810が壊れているですが。

他の稼働しているRTX810に同じ設定を流してみたところ、現象が再現したので、これも否定されました。危うく返品するところでした。

 

なんかフリーズしているように見えるので、ログを見たところ、機器に異常はなく、動作しているように見えるログでした。

わからない・・・。けどおかしい。

 

そして何度目かのログ確認でついに見つけました。

2018/08/07 10:30:18: ARP: Duplicate IP address(192.168.2.XXX) 00:a0

IPが重複していたのでした。

IPの変更により、動作は完全に安定しました。

1日かかりました・・・・・。

OutLook VBA で送受信の開始を検出する

以前、OutLookVBAで、送受信の終了を検知する記事を書きましたが、

今度は、「送受信の開始」を検出する必要が出てきました。

 

その方法。

以前とほとんど一緒ですが。

 

'以下をClass1に記述します。

Dim WithEvents mySync As Outlook.SyncObject

Sub Initialize_handler()
    Set mySync = Application.Session.SyncObjects.Item(1)
    mySync.Start
End Sub

'↓これで送受信のスタートを検知できます。

Private Sub mySync_SyncStart()
    MsgBox "送受信開始"
End Sub

'↓これで送受信の完了を検知

Private Sub mySync_SyncEnd()
    MsgBox "送受信が完了しました"
End Sub

 

'以下をThisOutLookSessionに記述します

Private Sub Application_Startup()
    Set ReceiveObj = New Class1
    Call ReceiveObj.Initialize_handler
End Sub

 

’以下を標準モジュールに記述

Public ReceiveObj As Object

 

※注意 サンプルソースでメッセージボックスを、送受信開始、送受信終了で表示していますが、送受信が終了する前に、「送受信開始」のメッセージボックスを消さないと、「送受信が完了しました」のメッセージは表示されません。

VirtualBox で ヴァーチャルマシンが起動しない話

BIOSで VT を 有効にしているのだが、

なぜか再起動しても VT-x が有効にならない。

何をしてもヴァーチャルマシンが起動しない。

 

 

 

asus のマザーなのだが、

BIOSをのCPUのところには、VT の設定がなくて、

他の場所に見つけた。

システムエージェント設置に、VT-d が。

これを有効にしてみる。

 ダメ。

Hiper-Vが有効だとだめだと聞いて、

Hiper-Vをチェックするとちゃんと無効になっている。

一度有効にして無効にしてみるが効果なし。

 

もう一度BIOSを見ると。

 

CPUのところに、ひっそりと縦スクロールバーがありました。

隠れていただけでした。

Intel(R) Virtualization Technology !!!!!!!

やった!!!

有効!

マネージ デバッグ アシスタント 'DisconnectedContext'  VB.NET で発生。 Excel出力

一度の処理で、100個くらいのエクセルファイルを出力する処理を作りました。

 

ループしながら、出力、保存を繰り返すのですが、

大体同じようなタイミングでエラーが発生し、

20個目のエクセルを出力、保存し終わって、

エクセルのオブジェクトをReleaseComObjectするときにエラーが出ているようです。

21個目のこともあれば、もっと早くエラーが起こることもあります。

 

'DisconnectedContext'が検知されるのですが、これは無視することができます。

'DisconnectedContext'で停止しないように、チェックを外したところ、

今度は

'ContextSwitchDeadlock'

が発生しました。

色々検索すると、DoEvents するとよいとのことでしたので、

 

エクセルを出力、保存、ReleaseComObjectの後に、DoEventsすると、

'ContextSwitchDeadlock' は解消されました。

同時に'DisconnectedContext'も解消されました。

VB.NET WindowsService から画面をロックする 3

 さてさて、もともと指紋認証アプリのための仕組みだったのですが、

なぜか、バックアップバッチが走っているサーバ上で、タスクスケジューラに登録された指紋認証アプリが起動しないとのこと。

 

うーん。バックアップバッチが最初に走って、それが終わるまで起動しないのだろうか?それとも他の要因が?

とりあえず実験をして検証をしてみるつもりです。

 

ダメならスタートアップに入れるか。