2014年8月18日月曜日

Kendo UI で、Cultureを変更する

モックアップを作りたいだけなので、簡単にメモ。

<script src="../../../kendoui/js/cultures/kendo.culture.ja.min.js"></script>

<script>
kendo.culture("ja");
</script>

ある程度使えるかどうかの評価をすることになったらちゃんと記事にしていきます。

2014年8月14日木曜日

ビルドされているモジュールのプラットフォームを確認する方法(corFlags.exe)

CorFlags.exe というFrameworkに付属しているツールを利用すると
モジュールがビルドされたプラットフォームを確認する事が出来ます。

私の場合、64bit環境で動作有、原因を調べるのに使いました。

http://msdn.microsoft.com/ja-jp/library/ms164699(v=vs.110).aspx


【使用例】
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin>CorFlags.exe aspnet_merge.exe
Microsoft (R) .NET Framework CorFlags Conversion Tool.  Version  3.5.30729.1
Copyright (c) Microsoft Corporation.  All rights reserved.

Version   : v2.0.50727
CLR Header: 2.5
PE        : PE32
CorFlags  : 11
ILONLY    : 1
32BIT     : 1
Signed    : 1

正しい使い方はあれこれありそうですが、私の場合には32bitでビルドされたことが
わかって、それでOKだったので、話題としては終わりでした。


プログラム入れ替えにより ASP.net WebサービスでPermissionsエラーが発生

IIS ASP.net環境で動作しているプログラムの入替を行ったところ
Permissionエラーが発生するようになってしまいました。
その対処の一部始終をメモしておきます。

【概況】

・IIS + ASP.netで稼働しているWebサーバ。 (Webサービスを稼働中) Win2008R2 , IIS7.0

・Webサービスの1つに不具合があり、プログラムの入替を行う。

【環境】

・WebService Directory
 |-web.config
 |- bin
  |- Program.dll ←今回これだけを入替
  |- *.dll

【やったこと】

・Program.dllをコピーして別の場所へバックアップ
・持参した、Program.dllを、上書きコピー


結果、これでアウトでした。
起きたエラーがコレ。

型 'System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' のアクセス許可の要求に失敗しました。
場所System.Security.CodeAccessSecurityEngine.Check(Objectdemand,StackCrawlMark&stackMark,BooleanisPermSet)
  場所System.Security.CodeAccessPermission.Demand()
  場所System.Reflection.Assembly.VerifyCodeBaseDiscovery(StringcodeBase)
  場所System.Reflection.Assembly.get_CodeBase()


【原因】

・Internetゾーンから取得したファイルを、そのままIIS稼働環境へコピーしたため。

【対処】

・ファイルのプロパティにてブロックを解除する。
 で、ダメだったので、あれこれやっているうちに、できるようになりました。

結果としては、アプリケーションプールにキャッシュされていたようです。

・アプリケーションプールの、停止、再起動を行う。
 使っていたアプリケーションプールは共有だったので、個別に新規で一つ作り
 新規で作ったアプリケーションプールを割り当ててみました。
 その結果、改善されました。
 それで、通常使っているアプリケーションプールを一旦再起動して、
 アプリケーションプールの設定を元に戻すと、正常稼働。

 アプリケーションプールの再起動時に、動作中プロセスの影響からなのか
 「アプリケーションプールを起動できません」的なエラーが出て焦りましたが、
 少し待ってから起動したら動いたので、結果問題なしといったところです。

【他に調べたこと】

・IISにキャッシュされていないか
 ⇒Windows\Microsoft.net\Framework**\Version\Temporary ASP.NET Files に
  IISが自分のロードしたモジュールをキャッシュします。
⇒結果、問題なし。
  念のため、
  ・アプリケーションとしての設定を解除
  ・該当キャッシュをクリア
  ・再度アプリケーションへ変換
  とやり、キャッシュの再構成を行いましたが、改善せず

【やりたかったけど試してない事】

・IISの再起動
 他にもアプリが動いていて、止めるにはいろいろと手間があったので、今回は除外

【まとめ】

普段はUSB媒体でプログラムの持ち込みをするのですが、今回はWeb経由で
プログラムを持ち込んだため、はまりました。

インターネットから取得したデータの扱いには十分注意しましょう。

2014年8月10日日曜日

ネットワーク(LAN)はループさせてはいけません(ブロードキャストストーム)

先日、お客様先へシステム納品時に、LAN障害が発生。
結局はループだったであろう。という事なのですが、
改めてその爆発力を目の当たりにしたのでまとめておきます。

現象

・ネットワークがつながったり、切れたりする。
・PINGを継続して実行していると、何回かに1回くらい、Request Timeoutが出る。

インフラ屋さんがあれこれ調べてやっていたのですが、ひょんなところで気がついた
ハブに、ネットワークループがありました。
その片方を取り外したところ、解決。

結論


ネットワークはループさせたらだめ。
※但し、STP(スパニングツリープロトコル)を持っているハブを利用しているだとか
 VLANとか、意図的にループ経路を作っている場合には別


そもそもネットワークのループって?

ループってどういうことか?っていうと、
・1本のLANケーブルを、同じハブに挿したらダメ。ということです。
・ハブ間は、1本のLANケーブルでつなぐことが基本で、二重化のようにつないだらダメという事です。
・ぐるっと回って1周。というようなLAN配線はダメということです。


詳しくはASCIIさんあたりを参照。
http://ascii.jp/elem/000/000/451/451629/
http://ascii.jp/elem/000/000/561/561903/


何も知らないユーザーさんだと、気にもならないのでしょうけども、
以外に単純な落とし穴で、ネットワークが使えなくなってしまう。


余談

そのお客さんは半日間、全システムがほぼダウンで、業務になってませんでした。