如何在沒有管理員權限的情況下為ASP.NET 4.7中的靜態(tài)網站提供服務?

我必須在用.NET Framework 4.7編寫的應用程序中提供一個靜態(tài)網站(多個文件)。在目標系統上,應用程序不能具有管理權限,因此IIS不是一個選項。

我知道ASP.NET是支持這一點的框架的一部分,但我如何用它實現靜態(tài)web服務器?

我甚至不需要任何特殊的東西,比如身份驗證或TLS,因為客戶端將在同一臺主機上。

我知道使用.NET7會容易得多,但這對我來說不是一個選項。

? 最佳回答:

您可以設置一個簡單的HttpListener來只提供文件夾中的文件。

以下是一個簡單的概念證明:

async Task ServeStaticWebSite() {
    var listener = new HttpListener();
    listener.Prefixes.Add("http://localhost:60000/");
    listener.Start();
    const string baseDir = @"C:\tmp"; // where your files are, for example index.html

    while(true)  // keeps running forever, add some mechanism to stop this
    {
        var ctx =  await listener.GetContextAsync();
       
        // sanitize the url, verify no path traversal is possible 
        var fullPath = Path.GetFullPath(Path.Combine(baseDir, "." + ctx.Request.RawUrl.Replace('/', '\\')));
        
        if (File.Exists(fullPath)) {
            using(var fs = File.OpenRead(fullPath))
            {
               ctx.Response.StatusCode = 200;
               fs.CopyTo(ctx.Response.OutputStream);
            }
        } else {
            ctx.Response.StatusCode = 404;
        }
        ctx.Response.OutputStream.Close();
    }
    listener.Stop();
    listener.Close();
}

如果您需要并行處理更多的連接,請使用本答案中的解決方案擴展我的示例,即使用C#HttpListener處理來自用戶gordy的多個請求

當上面的方法運行時,當你轉到http://localhost:60000/index.html時,你應該會在瀏覽器中得到一個結果

主站蜘蛛池模板: 亚洲AV无码一区二区三区系列 | 日韩人妻无码一区二区三区久久 | 人妻体内射精一区二区| 色综合久久一区二区三区| 国产一区二区在线视频| 国产精品主播一区二区| 亚洲av日韩综合一区在线观看| 中文字幕无线码一区2020青青 | 制服美女视频一区| 日日摸夜夜添一区| 亚洲一区二区三区精品视频| 免费萌白酱国产一区二区三区| 国产一区二区三区在线观看免费 | 无码人妻一区二区三区在线水卜樱 | 亚洲一区二区无码偷拍| 亚洲一区二区三区电影| 少妇特黄A一区二区三区| 国产一区二区三区日韩精品| 国产乱子伦一区二区三区| 色综合视频一区二区三区| 人妻AV一区二区三区精品| 国产小仙女视频一区二区三区 | 国模精品视频一区二区三区| 成人无码一区二区三区| 精品一区二区三区视频| 精品中文字幕一区二区三区四区| 视频在线观看一区二区三区| 无码人妻品一区二区三区精99| 无码av免费毛片一区二区| 国产福利电影一区二区三区久久久久成人精品综合 | 91一区二区三区| 一区二区不卡久久精品| 国产伦精品一区二区三区在线观看| 精品一区二区三区在线成人| 超清无码一区二区三区| 国模精品一区二区三区| 亚洲一区日韩高清中文字幕亚洲| 精品无码一区二区三区水蜜桃| 国产成人精品一区二区A片带套| 精品无码人妻一区二区三区18| 无码国产精品一区二区免费式直播 |