使WebDev.WebServer.exe 当web服务器
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 = 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;
}
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.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?