6

我只需要创建一个非常基本的 Web 服务器,它基本上可以让我访问http://1.2.3.4:8080并浏览 C:\web 或其他地方的文件列表。

我发现这个http://mikehadlow.blogspot.com/2006/07/playing-with-httpsys.html看起来很完美,但我遇到了几个问题。

1)当我像文档所说的那样用 * 或 + 替换 IP 时,我在 system.dll 中收到拒绝访问错误。当我使用 localhost 或我的本地 IP 时,它工作正常。为什么是这样?我希望能够将它绑定到具有多个机器上的特定 IP 地址。

2)我可能遗漏了一些东西,但是您如何指定与此代码一起提供的文件所在的核心目录?

4

4 回答 4

3

re 1:因为您没有注册此网址的权限。使用“http add urlacl2 为您的用户(作为管理员)注册权限以进行绑定。示例:http add urlacl url=http://+:8080/user=DOMAIN\UserName

回复 2:你没有。这几乎就是你的代码。Http.sys 不从文件系统中读取 - 它是一个驱动程序。您的应用程序必须读取文件并回答请求。

于 2011-02-09T23:06:21.680 回答
0

对于您想要的东西,这可能有点矫枉过正,但请查看aspNETserve Web 服务器项目。

它是开源的,所以至少你可以浏览代码来获得一些想法。

于 2011-02-09T23:07:09.857 回答
0

我知道这对解决代码问题没有帮助,但为什么要重新发明轮子!我认为您应该考虑使用 IIS Express,因为我认为它可以很好地满足您的需求:

http://learn.iis.net/page.aspx/868/iis-express-overview/

IIS Express 是一个独立的可执行文件,它将提供您需要的所有功能。它也可以在 Windows XP 及更高版本上运行。

于 2011-02-09T23:15:44.980 回答
0

这是一个简单且安全的 C# Web 服务器,无需 Active Directory 即可提供摘要式身份验证。Digest Auth 被破坏了,但是用超过 18 个字符的密码破解是不切实际的,无论如何,人们可以看到如何使用 C# 和 .NET HTTP.SYS 制作网络服务器,这是这个问题的重点。

https://git.motes.camp/web/index.php?p=DigestAuthWebServer.NET-HTTPSYS.git&a=summary

克隆网址:https ://git.motes.camp/DigestAuthWebServer.NET-HTTPSYS.git

于 2019-06-11T00:29:14.083 回答