Mono/Linux で HttpResponse.TransmitFile に問題があります。このコードは機能します:
using (var f = System.IO.File.Open(FileName, System.IO.FileMode.Open, FileAccess.Read))
{
f.CopyTo(response.OutputStream);
}
これはそうではありません:(Windowsではそうですが)
response.TransmitFile(FileName);
どちらの場合もデータが返ってきますが、違いは極端です。あるべきデータの始まりは次のとおりです。
8950 4e47 0d0a 1a0a 0000 000d 4948 4452
0000 04b0 0000 00a0 0806 0000 001c b895
4700 0000 0473 4249 5408 0808 087c 0864
8800 0000 0970 4859 7300 001b af00 001b
af01 5e1a 911c 0000 0019 7445 5874 536f
6674 7761 7265 0077 7777 2e69 6e6b 7363
6170 652e 6f72 679b ee3c 1a00 0020 0049
4441 5478 9cec bd79 7454 c799 37fc bbbd
492d b5f6 7d97 90d8 1108 3060 b3d8 98dd
3660 6ce2 78c1 d8ce 624f 66be 64f2 bd99
9ce4 cb99 c9c9 36f1 c439 4eec c964 9cc5
9937 f19b 38c9 6499 378e 63c7 3678 5f00
6302 189b cd6c 0281 d086 d46a f5be dcef
0f51 5777 a9ba b76e 770b 845d bf73 38b4
... (109270 bytes total)
しかし、これは私が得るものです:
3161 6164 360d 0a89 504e 470d 0a1a 0a00
0000 0d49 4844 5200 0004 b000 0000 a008
0600 0000 1cb8 9547 0000 0004 7342 4954
0808 0808 7c08 6488 0000 0009 7048 5973
0000 1baf 0000 1baf 015e 1a91 1c00 0000
1974 4558 7453 6f66 7477 6172 6500 7777
772e 696e 6b73 6361 7065 2e6f 7267 9bee
3c1a 0000 2000 4944 4154 789c ecbd 7974
54c7 9937 fcbb bd49 2db5 f67d 9790 d811
0830 60b3 d898 dd36 606c e278 c1d8 ce62
4f66 be64 f2bd 999c e4cb 99c9 c936 f1c4
394e ecc9 649c c599 37f1 9b38 c964 9937
8e63 c736 785f 0063 0218 9bcd 6c02 81d0
86d4 6af5 bedc ef0f 5157 77a9 bab7 6e77
... (109286 bytes total)
ある種のエンコーディングの問題のように見えますが、それが何であるか、またはそれを修正する方法について困惑しています。