代码改变世界

使WebDev.WebServer.exe 当web服务器

  狼人:-)  阅读(520)  评论(0编辑  收藏  举报

Vs自带的Visual Studio Development_server非常好用.比XP的IIS强多了. XP的IIS经常报访问数过多.

但是, WebDev.WebServer.exe 有个限制就是,只能内环网访问,就是只能用localhost 或者127.0.0.1访问.

要是能够对外服务的话,岂不是可以当个IIS 了?

 

 查了一下引用.只用了WebDev.WebHost.dll. 理论上有了WebDev.WebHost.dll和WebDev.WebServer.exe就可以架设了.

现在需要的就是去掉内环访问限制.从Reflector中查找:

在 方法里:

 
Microsoft.VisualStudio.WebHost.Server 

复制代码
复制代码
public void Start()
{
    this._socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
    this._socket.ExclusiveAddressUse = true;
    try
    {
        this._socket.Bind(new IPEndPoint(IPAddress.Loopback, this._port));//这里开启的是内环网监听.
    }
.......
复制代码
复制代码

 

 改成:

 this._socket.Bind(new IPEndPoint(IPAddress.Any, this._port));

 

 在

Declaring Type: Microsoft.VisualStudio.WebHost.Request

 private bool TryParseRequest()

复制代码
复制代码
{
    this.Reset();
    this.ReadAllHeaders();
    if (!this._connection.IsLocal)//这里检查了是不是本地的请求.需要弊掉.
    {
        
this._connection.WriteErrorAndClose(0x193);
        
return false;
    }

   ....略
    return true;
复制代码
复制代码

 基本就去掉内环网访问的限制了.

 下面就需要来修改.

1. 首先把WebDev.WebHost.dll去掉强命名,再反编译成IL.

2. 修改IL. 

3.编译IL.编译要用新的Key给它强命名.

4.把 WebDev.WebServer.exe 反编译成IL,把引用WebDev.WebHost.dll的签名改成刚生成的.

5.编译新的WebDev.WebServer.exe.

编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示