WRViewer右クリックで画像コピー時アクセスエラー
IMSImageServerを共有フォルダにアクセスできるユーザに偽装する。
<configuration>
<system.web>
<identity impersonate="true" userName="taro" password="pass" />
</system.web>
</configuration>
SQLパフォーマンス改善
SQL Server 2008 R2
型がvarcharのフィールドに対して、SQL文のWhere部分の文字列に「N」を付けて検索するとパフォーマンスが落ちる。AutoForwardの送信対象検索SQLのせいでクライアント側のパフォーマンスが落ちる。
VBScriptで動的2次元配列
ReDimで変更できるのは最終次元の添え字です
dim dat(0,7)
と宣言した場合 変更できるのは 2次元目の7側の次元です
つまり ReDim dat( 0, 8 )や ReDim dat( 0, 3 ) は許されますが
ReDim dat(1,7) など 1次元目の変更は出来ません
SQL Server 2012 ExpressでASPからDBに接続
スタート⇒すべてのプログラム⇒Microsoft SQL Server 2012⇒構成ツール⇒SQL Server構成マネージャー⇒SQL Serverネットワークの構成⇒MSSQLSERVERのプロトコル⇒TCP/IPを「有効」にして、SQLServerサービスを再起動する。
Install Shield 2010 諸々
技1:COMをレジストリに登録
1. コンポーネントビューを選択
2. COM 登録するファイルを含むコンポーネントを選択
3. [ビルド時のCOM抽出]を[はい]に設定
4. [コンポーネント]ノードを展開し、コンポーネントのファイルのビューを表示
5. COM登録するファイルを右クリックし、[キーファイルの設定]を選択
技2:指定ドライブにフォルダを作成
技3:ほかのアプリケーションを起動
kazunori-ohmori.blog.so-net.ne.jp
エラー1:Locationエラー。
原因:単純にファイルサーバにアクセスできなかった。一回ログインしたらその後は正常になる。
注意点:IPアドレスでファイルサーバにアクセスをやめて、サーバ名でアクセスして、~.ismファイルをダブルクリックで開けばアクセス権限によるエラーが発生しなくなる。
エラー2:-6109エラー
原因1:DicomObjects.ocxが未登録。
原因2:User32.dllが参照されている。⇒VS2012以降のinstallShieldで-6109が出たときの対処 | Try&Error テクニカルブログ
C# オブジェクトのコピー
ディープコピー
コピーする型には SerializableAttribute 属性をつける必要があります。
コピーが不要なフィールドには NonSerializedAttribute 属性をつけることで
シリアライズの対象から除外されます。
[SerializableAttribute()]
public class SerializableClass
{
public int SerializableField;
// このフィールドはコピーされません。
[NonSerializedAttribute()]
public int NonSerializableField;
public SerializableClass Clone()
{
object clone;
using (MemoryStream stream = new MemoryStream())
{
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(stream, this);
stream.Position = 0;
clone = formatter.Deserialize(stream);
}
return clone as SerializableClass;
}
}
使いかたは以下のとおりです。
SerializableClass serializable = new SerializableClass();
serializable.SerializableField = 10;
serializable.NonSerializableField = 100;
SerializableClass clone = serializable.Clone();
// i には 10 が代入されます。
int i = clone.SerializableField;
// j には 0 が代入されます。(コピーされません)
int j = clone.NonSerializableField;
もちろん clone オブジェクトのプロパティを変更しても、
コピー元の serializable オブジェクトのプロパティは変更されません。
いろいろな型のクローンが必要なら次のようなヘルパークラスを用意すると
いいかもしれません。
public class CloneHelper
{
public static T Clone<T>(T target)
{
object clone = null;
using (MemoryStream stream = new MemoryStream())
{
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(stream, target);
stream.Position = 0;
clone = formatter.Deserialize(stream);
}
return (T)clone;
}
}
次のようにクローンメソッドを定義します。
[SerializableAttribute()]
public class SerializableClass
{
public SerializableClass Clone()
{
return CloneHelper.Clone<serializableclass>(this);
}
}