読者です 読者をやめる 読者になる 読者になる

misc.log

日常茶飯事とお仕事と

動いているアプリが.NET Frameworkベースかどうかを判定する方法

小ネタですが。動いているアプリが.NET Framework必須のものかどうかを判定する方法として、以下のコマンドで表示されるプロセスの一覧に含まれるかどうかを見るというものがあるようです。 tasklist / "mscor*" mscoree.dllやmscorei.dllのようなモジュール…

ModulusとExponentを指定してRSAで暗号化/復号する(.NET)

客先のデータ保存システムへのアクセスで、ログインにチャレンジ文字列を使ったパスワードの暗号化が必要ということが判明。Webサービス経由でサーバーに要求を掛けるとRSA暗号化用のModulus(モジュラス)とExponent(エクスポーネント)、チャレンジ文字列…

ODP.NETのDLL名、変わっていたのね

久々にWindows Formsのアプリをいじることになって、客先からソースをもらって改修作業を……と思ったら、開発環境やら手順やらが全くなくて四苦八苦。その中で、Oracle接続に使っているライブラリが「Oracle.ManagedDataAccess」ってなっていたのでなんだろう…

NPOIで.xls、.xlsx問わず読み込んで処理する方法

.NETアプリからExcel自体を使わずにExcelファイルを扱うライブラリ、NPOIですが、xlsxとxlsでは読み込むオブジェクトが異なるようで。これを共通的に読み込んで IWorkbook型のオブジェクトとして取り扱う方法、こちらに書いてあったのを参考にさせてもらいま…

log4netでログファイルが空であれば生成しなくする方法

log4netを使ったアプリで、ログファイルを「本当にエラーの時だけ出す」という設定にした場合、普通に作るとエラーが無くても空のログファイルができてしまいます。これをなんとか回避できないかという件。とりあえずStackoverflowで該当する質問があったの…

Webアプリから実行すると遅いSPが、SSMSからだと速い

※一応解決。最新情報は → http://backyard.hatenablog.com/entry/20160810/1470796194 ちょっとメモ。とあるストアドプロシージャが、Webアプリ(ASP.NET、ADO.NET経由)で実行するとタイムアウトしたりしなかったりなのですが、SSMS(SQL Server Management…

ASP.NET Webアプリを新環境に置いたら500.19 Internal Server Error

旧サーバーで動いていたものを、設定ファイルの接続先だけ書き換えて新環境に置いてみたのですが……なぜかエラーが。エラーはASP.NETのファイルのみならず、テスト用に作ったhtmlファイルの表示でも発生。 設定項目の何が原因か調べる おかしく思い、設定ファ…

C#やVB.NETからExcelファイルを開いて操作する - NPOI試用

C#からExcelファイルを開いて内容を読みだす必要が出てきたので少し調べものメモ。 NPOI パッと思いつくのはInterop.Excelを使ってのアクセスですが、Office365が入ってきている環境でバージョン依存になったりするプログラムにしたくないので、このやり方は…

文字コード関連の過去エントリー

なんか自分よりずっと前からウェブ関連やってる人たちが全然文字コードとか気にしてなくてノウハウも持ってなくてちょっと参ってるので、とりあえず過去に自分が書いたものを列挙しておきます。何か聞かれたときにさっと調べられるように。 文字コード全般 b…

.NET Reflectorに変わるツール、dotPeek

.NET開発をやっていると、他社や他チームが作成したDLLの中のロジックを追いたくなることがあります。え?ない?あるよね?あります。というわけで、以前は「.NET Reflector」というツールがそういう用途で使えたのですが、残念ながらというか人気があるから…

telnetでWebサーバーの生死を確認してみる

15年ほど前、最初の転職で面接に訪れた会社で聞かれたのが「メールサーバーにコマンドを送ってメール取得とか、できますか?」でした。残念ながらやりかたを知らず、できませんと言ったところ不採用。ま、それだけじゃないのですが、そのあとご丁寧に喫茶店…

DTSの定義情報をVisual Studio 2008で確認する(断念…)

結論からいうと、自分の作業環境ではできませんでした。念のため試したことを記載しておきます。参考まで。古いシステムの刷新プロジェクトで、SQL ServerのDTS(Data Transformation Services)が利用されていたので、その内容を見たいのですが…。手元にあ…

DataTable.Mergeでエラーが出る

CSVで一覧表を出力するASP.NETのアプリで、ちょっと見出しの名前を変えたらエラーが出てしまってしばらく悩みました。 制約を有効にできませんでした。行に入力できるのは、Null 以外の値、一意な値、 あるいは外部キーですが、この制約の違反が 1 つ以上の…

「~はCLSに準拠していません」警告が出る

仕事の都合で参照しなければいけないVB.NETソースがあり、その内容をVisual Studioで見ていたのですが、一斉に警告「~はCLSに準拠していません」が並びました。あまり見たことが無い警告だったので調べたのですが、これ、「先頭がアンダースコアであるパブ…

Visual Studio 2005 + VSTO on Windows 7でExcelアプリを作ってmsi形式でインストールする

いやもう、なんというか大変。Visual Studio 2005に、VSTO(Visual Studio Tools for Office)を入れて、Office 2003用のExcelに.NETで追加機能を付けたものを作り、さらにそれをmsi形式でインストールしようという試み。制限時間は4時間半。 環境構築 なんだ…

Visual Studio 2005アンインストール中のMachine Debug Manager終了指示メッセージ

自分用メモ。訳あってWindows 7環境でVisual Studio 2005を入れたり消したりしているのですが、アンインストール中にこんなメッセージが出ることがあります。 セットアップを続行する前に、以下のアプリケーションを閉じてください。 Machine Debug Manager …

VSTO(Visual Studio Tools for Office)関連メモ

ちょっと調べる必要があったのでメモしておきます。.NETでOfficeシステムを作ったりアドインを作ったりするVSTOに関するMSDNのドキュメント等のメモ情報。自分で作ったものでもなく、ソースも見られず、開発用サンプルのダウンロードサイトがあるだけという…

TransmitFileでExcelファイルをダウンロードさせると、「開く」が選べない?

お仕事メモ。Office 2010とOffice 365共存環境での話です。 TransmitFileでのExcelファイル転送 ASP.NETのTransmitFileという方式で、「inline」指定でExcelデータをダウンロードさせ、Excel 2010で開かせた場合に*1、Internet Explorerでダウンロードすると…

拡張子 xlsx のExcel 2007/2010/2013データをResponseで返す

とりあえず備忘録。ASP.NETにて、xlsx形式のデータ(っても実体はHTML形式)をResponse.Writeで返し、無理やりExcel 2010などで開かせようとしたのですがうまくいかず。2003形式だとできるのにね。おそらくOpenXMLの規格とかにマッチしていないから開けない…

.NETコーディング規約の元ネタ

.NET Frameworkに関するコーディング規約の元ネタ。客先からヘンテコな規約を押しつけられて戦うはめになった時の武器です(公式でこう言ってるんだから従いましょうよ、的な路線で攻める)。 クラスライブラリ開発のデザインガイドライン / Microsoft Devel…

Response.TransmitFile等で返したExcelファイルのファイル名が化ける

ASP.NETで、Response.TransmitFileやResponse.Writeを使ってExcel形式のデータやファイルを返送しようとしたのですが、ファイル名が化けてしまうという現象が。データの内容は問題ないのですが、ファイル保存ダイアログなどのファイル名が化けてしまいます(…

Response.EndでThreadAbortExceptionが起きる

下記エントリで書いていたコードに、実行ログを出力させよう!とlog4net出力コードを埋め込み、さらに「エラー処理も(エラー起きないだろうけど)やっておこう!」と張り切ってTry/Catchで囲ったら……エラー出てるし……ASP.NETでExcel形式のデータを返す - mi…

ASP.NETでExcel形式のデータを返す

ちょっとした調査で、ASP.NETのWebアプリからExcelで開けるデータを送り返すテストを行うことに。文字コードの部分でちょっと引っかかったのでメモしておきますね。以前、PHPの案件でも同じところで引っかかったのですが。 Excel形式を指定してResponseで返…

VB.NET用の静的コーディング規約チェックツール

.NETのIL用チェッカーとしてはFxCop、C#の規約チェッカーとしてはStyleCopがありますが、どうやらVB.NET用は公式には無いようで……。代替について検索したらいつものStackOverflowで同じ質問をしている人を見つけました。What StyleCop like tools are there …

ASP.NET Webサービスでパラメータスタイル「Bare」を使おうとして失敗

ASP.NET Webサービスで、引数に独自のクラスを用いたWebメソッドを作成。しかし、メソッド呼び出し側から「WSDLの定義で1階層余計なタグが入るのをやめてほしい」との要望。そもそも呼び側がなんで仕様を決めるんだよ……というのもあるのですが……。一応調査。…

ASP.NET Webサービスでハッシュテーブルを使おうとして…

使えませんでした。PHPの連想配列に対応する引数として、名前付きの配列に相当するものといえばハッシュテーブル(System.Collections.hashtable)が挙げられます。しかしこれを引数に持つWebサービスを組んでみたところ、このようなエラーが。 型 System.Co…

ASP.NET Webサービスの作成… SOAPのタグや属性名を指定したい

正直なところ、.NETになって簡単に作れるようになったWebサービスと、WCFの関係とかよくわかってないのですが、とりあえずASP.NET Webサービスのプロジェクトを作って作業してます。で、呼び出し側との決め事として、SOAPのメッセージにつける属性やタグの名…

WCFサービスをDLL無しで配置、稼働させる

WCFで作成したRESTサービスを、DLLとしてまとめるのではなく、ソースのままWebサーバー(IIS)に配置する方法を調べていたのですが、なんか上手くいったっぽいのでメモ。大筋は職場の人が組み立ててくれた手順に従っての作業だったのですが、最後の最後、そ…

JSONデータの確認

JSON形式で戻ってきたデータなどの確認をどうしようかとおもっていたら、結構便利なサービスを公開してくださってるところがあったのでメモ。 JSON整形サービス http://www.ctrlshift.net/jsonprettyprinter/ RESTful Webサービス作者: Leonard Richardson,S…

ASP.NET Webサービスを配置する

Webサービス(Web Service)と言えば、Visual Studio.NET 2003の頃にちょっとだけかじった程度なのですが、今度Visual Studio 2008を使った環境で作成する必要が出てきたので基本的な部分を調べています。作るのはなんとかなるのですが、実際にWebサーバーに…

log4netでSQL Serverにログを書く

log4netのAdoNetAppenderを使って、初めてSQL Serverにログを書き出してみました。SQL Serverへのログ出力は、 設定情報に接続情報を記載する。 ログテーブルにあわせたInsert文を記載する。可変項目(要するに各カラム、フィールド)の内容は、@で始まるパ…

Windows Server 2012でWCFサービスを動かす

とりあえずメモ。こちらのサイトを参考にさせてもらった。 へたれプログラマBlog/WindowsServer2012のIIS8.0でWCFをホストする http://blog.livedoor.jp/ponpoko_saitoko/archives/20887291.html 早速、サーバーマネージャーから「役割の機能の追加」で追加…

WCFサービスでlog4netを使う(設定ファイルをweb.configに書く)

WCFサービスで、ロギングにlog4netを使いたいのだけれど、設定ファイルの読み込みをどうしようか迷ってます。これまでずっとやってきたのは、下記のようなコードで設定ファイルのパスとファイル名を指定するという方法でした。 static protected ILog logger…

log4netでログをメールに出す

とりあえずメモ。詳細は後程。log4netはログ出力をさまざまな形で出力でき、なによりその書式、出力先を外部の設定ファイルで自在に指定できることが魅力です。で、その「出力先」の1つとして「メール」があるのですが……。自分は使ったことありませんが、出…

Visual Studio 2008 + C#でRESTサービスを作ってみる

訳あって調べ物。REST(Representative State Transfer)と呼ばれる方式の処理呼び出し/応答を行うWebサービスを作成する必要があるので、作り方の基礎の基礎を実際にやってみることに。細かい定義やらなにやらはさておき、とりあえず手を動かす路線で。 参…

ロードされているODP.NETライブラリのバージョンを調べる

昨年だったかに、ちょっと複雑なデプロイ環境を作る必要があり、その環境で実際に使われているODP.NET(Oracle Data Provider for .NET)のバージョンを調べなければならなかったので作ったコード。どこかで使いそうなので貼っておきます。 'Oracle.DataAcce…

いわゆる「半角文字」チェック

入力された文字が、いわゆる半角文字、ShiftJISであれば1バイトで表現できる文字かどうかを判断するロジックを組む必要があったので、過去のコードをひっくり返してみました。某作業で作ったコードがたぶん使えそう。方法はいろいろありますが、これは正規表…

ログ出力に汎用性を持たせる

先日書いた「自メソッドを呼んだメソッドを知る(http://backyard.hatenablog.com/entry/20131112/1384184120)」で、コンソール出力にログを出していたモノをちょいと改良。ログ出力処理ロジック自体を好きに差し替えられるようにしてみます。方針は 具体的…

自メソッドを呼んだメソッドを知る

ちょっとログ処理の工夫方法を調べてみました。以下のようなシチュエーションで、ログ出力内容を多少マシにするためのネタ。 ログは専用クラス(仮称「Logger」と呼ぶ)が出す。 専用クラスにはWriteLogメソッドがある。 WriteLogにはメッセージ文字列を渡す。…

SJIS設定のOracle DBにいろいろ文字を突っ込んだ時の記録

文字コードがらみの調べ物をしていたときのメモを転記しておきます。Oracle 10gをキャラクタセット「JA16SJISTILDE」で設定し、そこにVB.NETから変な文字(笑)を突っ込んだ時に文字がどう化けるかの実験結果です。全角やら半角やらって用語についてはとりあ…

ユニコードのコード番号から実際の文字を生成する

2013年の2月と7月に、大嫌いな文字コードのお仕事をする羽目になって必死に調べて作業した時の記録を一切公開していなかったので、発掘して残していきます。いずれC#で書き直したいのですが、とりあえずはVB.NETのコードを切り貼りしてあとで参照できるよう…

クロスサイトリクエストフォージェリ(CSRF)

昨夜、ASP.NETのページでボタンなどが押されてポストバックが起きる際に、最初に「Anti-CSRF Token」とタグ付された文字列を含むPOSTが飛んでいるのを見つけて、「なんだっけ?」と思ったのをとりあえず片づけておきます。CRSFはクロスサイトリクエストフォ…

ASP.NETでやりとりされるViewstateの内容を読み解いてみたいがうまくいかない(2)

先日の続き。ASP.NETなどでのページ遷移の際にくっつく情報「Viewstate」の中身をのぞき見してみたいという課題の続き。環境はASP.NET + .NET Framework 4.5、サーバーはWindows Server 2012にIIS8.0という状況で、簡単なASP.NETのページを作り、テキストボ…

Viewstateが使っているシリアライザー(LOS/Limited Object Serialization Formatter)

http://backyard.hatenablog.com/entry/20131026/1382777890 の続きです。 先ほどのViewstateに関する調べ物の過程で、ASP.NETがViewstate情報の生成と解読に用いているのはLOS Formatter(Limited Object Serialization Formatter)だという話を見つけまし…

ASP.NETでやりとりされるViewstateの内容を読み解いてみたいがうまくいかない

※現時点ではまだ答えにたどり着いていません。下記内容は作業過程のメモですWebアプリケーションが持つ、サーバーとの情報連携方法の1つに、ビューステート(Viwestate)と呼ばれる情報に値を載せてやりとりするという方法があります。ASP.NETで用いられるコ…

IIS 8.0 + .NET Framework 4.5でASP.NETアプリを配置してみる

Visual Studio 2012 + .NET Framework 4.5で作成したASP.NETアプリを、Windows Server 2012上で可動するIIS 8.0の環境に配置してみたい…のですが、なかなか上手くいきません。 配置用ファイル一式の用意 Visual Studio 2012には、Webサーバーと連携して一式…

IIS 8.0でASP.NETを利用可能にする

仮想環境に構築したWindows Server 2012にIISを入れて、ASP.NETのアプリを動かしてみよう……と思ったのはいいのですが、とりあえず 作ったアプリの配置方法がわからない おまけになんかIISでASP.NETが使えてないっぽい というので少し行き詰まってしまいまし…

Oracle DBのNumber型をSingleで受けたら誤差った

絶対忘れてたぶん次も調べるだろうからメモっておきます。やったのは私ではないのですが、相談を受けてちょいと調べました。 環境 .NET Framework 3.5 + C# Oracle Database(バージョン不明) 起きたこと Oracle DatabaseのNumber型(少数含む)をDatasetで…

Internet Explorerからの通信内容を確認する

ASP.NETとかで作ったページが実際にどのような通信をサーバーと行うかってのを見たかったので調べてみました。へぇ……この機能が使えたんだ…って感じ。詳しくは下記のMSDNサイトにて。 Using Windows Internet Explorer Developer Tools Network Capture http…

C#本を買っておこう…

だめだやっぱ1冊は何か買わないととっかかりが難しい。まじめになにか言語をやるのって久しぶりだから。プログラミングC# 第6版作者: Ian Griffiths,Matthew Adams,Jesse Liberty,鈴木幸敏,首藤一幸,株式会社情報技研出版社/メーカー: オライリージャパン発…