Oh!Super164 取り留めのない日記のような

2026/1/17 土曜日

癖が強い設定

Filed under: ASP,プログラミング — pecos @ 0:20:01

散々、asp.netで悩む
chrome/edgeでことごとく同じ現象だったので、VSの設定をあれこれ変えたり、コードを書き換えたりとしていたが改善せず。友人のとこでは普通に動くと言われ驚愕。もう無理と思ってFireFoxを入れたら動作した、、、あれ?w
結局のところ、原因はオレオレ設定だった、、、記憶にないのだが、セキュリティーの設定をガッチガチに固めていたようだ。自分で仕掛けたセキュリティーに自分でハマるとは、、、トホホ

2021/1/19 火曜日

エリア51

Filed under: ASP,仕事 — pecos @ 21:41:46

asp.net mvc5(or core)のArea機能
webのアプリをサブブロック毎に分けるような、ファイルで言えばdir/folderの様な仕組みなのだが、ふと思い立ち実験してみる。
なるほど、使えそうな気がする、、、

2020/11/25 水曜日

asp.net core 5.0

Filed under: ASP,仕事 — pecos @ 16:18:53

試しに3.1から5.0に変更してみた
ワーニング1件、実行時エラー2件が発生。まず、Obsoleteでワーニング、UseDatabaseErrorPageはもう使うなというもので回避策はMSのHPにあったので修正。そして、これはOracleのドライバ固有かもしれないがBinaryFormatterは危険だから使うなというもので強制的に「使う」にすると問題ない。安全に使うにはODPのアプデ待ちとなる。そして最後はUserStoreの動きが若干異なる為のもの。単純に当方が呼び出されないメソッドを未実装例外にしていた怠慢によるものだった。
取り合えず、これらを直して走らせると一応は動いた。細かいところまで見ていないので隠れたエラーはあるのかもしれないが、ビルドは通って動くには動く。

2020/8/10 月曜日

mvc5とmvc coreの微妙な違い

Filed under: ASP — pecos @ 16:45:44

既定のブランク文字列の扱いが異なる
coreでは空文字列や空白のみのtextがnull変換されてしまう。そもそも空白文字をコードにしている時点でPGの仕様が間違っているのだが、それは一旦置いといて(古くからの仕様なので仕方ない)。しばし、この現象で悩む。ブラウザのjs側でわざわざ” ”を代入しても、postして受け取るとnullになっている。調べてみるとこんなサイトを発見。ふむふむ、modelのアノテーションに

[DisplayFormat(ConvertEmptyStringToNull = false)]
public string hoge { get; set; }

って書いとくか、Setup.csでクラスを使って登録するかをして回避出来るようだ。
なるほどねぇ、、、

2020/4/22 水曜日

asp.net core 3.1 + Ubuntu 18.04 + nginx

Filed under: ASP,PC — pecos @ 23:44:58

apacheがいけたならnginxも試しておこう
ブラウザとのssl通信はnginxに任せてlocalhostのkestrelとはhttpで通信するという事がやりたいのだが、親切な方がビックリする程直球ど真ん中の記事を上げてくれていたので、そのまま真似してみた。結論から言うとうまくいった、ありがたい限りである。
後は80へのアクセスをリダイレクトさせるなりすればいいか、、、

asp.net core 3.1の検証

Filed under: ASP,PC — pecos @ 23:21:29

実際のMVC5のWebAppを一部移植してみる
工夫すればControllerやViewもある程度共通化出来そうなので、既存のWebAppで難易度の高そうなPDFやExcel出力を試してみたが普通に動くようだ。元々、ロジックのAction部分は外に出しているのでMVCフレームワークへの依存度の高いとこだけをCore化すれば後はいけそうな気配。実際、参照しているdllは何も変更していない。standard 2.1はなかなか使える子だ、将来統合される.net5.0には期待が持てるかもしれない。

2020/4/19 日曜日

asp.net core 3.1 + centos7 + apache

Filed under: ASP,備忘録 — pecos @ 0:25:24

asp.net core 3.1で戯れる
dotnet 3.1になって既存のソースとか、ほぼそのままcoreでもビルド出来るようになって来た。これまでMVC5を使って来たのだが、いよいよ将来の移行も視野にasp.net coreを触ってみる。
VisualStudio上で動かすのは簡単だが、いざdeployとなるとどうなんだろう?ということでcentos7上でkestrelをapacheでリバースプロキシ経由で公開するテストをしてみた。vsでランタイムから何から一本のdllにまとめてしまうという素晴らしいオプションでpublishしたバイナリを使用。centos上でそのdllを普通に動かすだけで、そのままwebappが動くのでお気楽だ。
既定ではkestrelを動かすと”http://localhost:5000″として動作するが、これをそのままapache経由で公開するとwebのroot”/”になってしまう(凡例”http://www.example.com/”)。
そこで、外部からは”myapp”とかの名前で公開したい(凡例”http://www.example.com/myapp”)ので、いろいろ試行錯誤した結果を備忘録にしておこう。
まずはasp.net coreのアプリ側の細工:

//1) kestrelで"myapp"がbasepathになるようにする
public void Configure(IApplicationBuilder app, IWebHostEnvironment env) {
        :
    app.UsePathBase("myapp");
    app.UseStaticFiles();
        :
    app.UseForwardedHeaders(new ForwardedHeadersOptions {
        ForwardedHeaders = ForwardedHeaders.All
    });
        :
}

次にapache側の設定:

#2) apacheのリバースプロキシを設定
<VirtualHost *:*>
        RequestHeader set "X-Forwarded-Proto" expr=%{REQUEST_SCHEME}e
</VirtualHost>

<VirtualHost *:80>
        ProxyPreserveHost On
        ProxyPass /myapp http://localhost:5000/myapp
        ProxyPassReverse /myapp http://localhost:5000/myapp
        ServerName www.example.com
        <Location /myapp>
                Require all denied
                Require ip 127.0.0.1/32
                Require ip 192.168.0.0/24
        </Location>
</VirtualHost>

これで取りあえずは”myapp”で公開された。
そして更に、オレオレ証明書でhttpsにしたかったので、上記のconfを書き換えた:

#2') apacheのリバースプロキシを設定(https)
<VirtualHost *:*>
        RequestHeader set "X-Forwarded-Proto" expr=%{REQUEST_SCHEME}e
</VirtualHost>

<VirtualHost *:80>
        RewriteEngine On
        RewriteCond %{REQUEST_URI} /myapp
        RewriteCond %{HTTPS} off
        RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

        <Location /myapp>
                Require all denied
                Require ip 127.0.0.1/32
                Require ip 192.168.0.0/24
        </Location>
</VirtualHost>

<VirtualHost *:443>
        ProxyPreserveHost On
        ProxyPass /myapp http://localhost:5000/myapp
        ProxyPassReverse /myapp http://localhost:5000/myapp
        SSLEngine on
        SSLProtocol all -SSLv2
        SSLCipherSuite ALL:!ADH:!EXPORT:SSLv2:!RC4+RSA:+HIGH:+MEDIUM:!LOW:!RC4
        SSLCertificateFile /etc/pki/tls/certs/localhost.crt
        SSLCertificateKeyFile /etc/pki/tls/private/localhost.key

        <Location /myapp>
                Require all denied
                Require ip 127.0.0.1/32
                Require ip 192.168.0.0/24
        </Location>
</VirtualHost>

ブラウザには最初に怒られるが、構わず続けるとhttpsでアクセスできた。
これなら、kestrelのポートをwebapp毎に変えれば同じサーバで複数公開出来そうだ。

2017/5/23 火曜日

VS2017

Filed under: ASP,PC — pecos @ 21:27:36

前回はインストまでで飽きた終了したVS2017で
asp.net core mvcを試してみることに。つい先日、VS2015の仮装マシンを破壊してしまい、サンプルで作ったmvcのソースが消えたので、LinuxやMacで動作確認した時のソースを何とか寄せ集めて復元し、VS2017に持って行ったのだが、ビルドは出来るが実行出来ない状態に、、、面倒なのでスクラッチで作り直そうと、VS2015でお世話になったテンプレートVS2017版をインストを試みるも拒否されてしまいコマンドラインで無理やり入れる。手動でテンプレからソースを作成してからVS2017で開くと何とか動作した。
そして、当方の根気のスイッチがここで切れたw

2017/2/4 土曜日

ASP.NET Core

Filed under: ASP — pecos @ 0:55:48

簡単なサンプルで格闘中
MVC6そのものが、MVC4/5と比べても進化しまくっているだけに、ASP.NET Coreも幾分戸惑う。それでも、Identityなしでも、ユーザやロールが使えるようになったので、これなら一通り基本的な事は出来そうだ。Entityを必要最小限に抑えて好き勝手も出来るので自由度も高い。PHPやRubyの「俺の言う通りに使え!例外は許さん!」的なドSフレームワークの束縛プレイが嫌いな当方としては、MSのバランス感覚は絶妙で好きだ。

GNOME

Filed under: ASP,PC — pecos @ 0:36:23

我が家にはLinuxの鯖が2台あるのだが
どちらも最小構成のインストールでGUIはない、そこでスペック的に余裕のある一台にGNOMEを入れる。というのも、Linux用のdotnet coreを触ってみたのだが、vimとコマンドラインだけでは限界を感じ、VisualStudioCodeならどうだろう?と思ってのことだったのだが、素直にWindows上のVisualStudio2015でCore用のプロジェクトを立ち上げて完成したソースだけ持ってきた方が効率的だった、、、
VisualStudio万歳w

Older Posts »

Powered by WordPress