我使用httplistener在WPF应用程序中托管了一个非常简单的页面
config = dict(
languageCode='de',
maxAlternatives=1,
enableWordTimeOffsets=True,
enableAutomaticPunctuation=True,
model='default',
encoding='ENCODING_UNSPECIFIED'
)
它正在托管此HTML页面,该页面只能允许客户端下载以前由主应用程序生成的一些本地文件。
ThreadPool.QueueUserWorkItem(o =>
{
Console.WriteLine("Webserver running...");
try
{
while (_listener.IsListening)
{
ThreadPool.QueueUserWorkItem(c =>
{
var ctx = c as HttpListenerContext;
try
{
if (ctx == null)
{
return;
}
var requestUrl = ctx.Request.Url.LocalPath.Trim('/');
var rstr = _responderMethod(ctx.Request);
var buf = Encoding.UTF8.GetBytes(rstr);
ctx.Response.ContentLength64 = buf.Length;
ctx.Response.OutputStream.Write(buf, 0, buf.Length);
}
catch (Exception ex)
{
// TODO: add log here.
Debug.WriteLine(ex.Message);
}
finally
{
// Always close the stream.
if (ctx != null)
{
ctx.Response.OutputStream.Close();
}
}
}, _listener.GetContext());
}
}
catch (Exception ex)
{
// TODO: add log here.
Debug.WriteLine(ex.Message);
}
});
但是,当我访问网页并尝试下载时,它实际上并不会获取本地文件。我尝试了不同的绝对路径位置,但是它仍然无法实际下载文件。
是否缺少某些内容,我真的需要以某种方式处理请求,而不是使用简单的HTML href下载链接吗? 还是有其他托管方式可以提供这种简单的解决方案?
我正在使用VS 2017,C#4.6.1,我的主要应用是WPF。