NavigateUrl を FullPath に設定すると、Chrome には、サーバー自体ではなく、サイトにアクセスしているユーザー マシンにローカルなリンクが表示されます。
そのため、ハイパーリンクの URL を常に //someURL またはhttp://someurlの形式にする必要があります。
あなたの場合、ハンドラーを削除しNavigateUrl
て追加する必要OnClick
があり、ハンドラー内で、FileStream を使用してファイルを読み取り、ファイルの内容を応答ストリームに書き込み、それをフラッシュします。
クリック ハンドラーの例:
context.Response.Buffer = false;
context.Response.ContentType = "the file mime type, ex: application/pdf";
string path = "the full path, ex:E:\PINCDOCS";
FileInfo file = new FileInfo(path);
int len = (int)file.Length, bytes;
context.Response.AppendHeader("content-length", len.ToString());
byte[] buffer = new byte[1024];
Stream outStream = context.Response.OutputStream;
using(Stream stream = File.OpenRead(path)) {
while (len > 0 && (bytes =
stream.Read(buffer, 0, buffer.Length)) > 0)
{
outStream.Write(buffer, 0, bytes);
len -= bytes;
}
}