使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.Bind( new  IPEndPoint(IPAddress.Parse(ConfigurationSettings.AppSettings[ " ServerIP " ]),  this ._port)); // 从配置文件读取IP

 

 在

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.

6.新建 WebDev.WebServer.EXE.config,并在appSettings添加ServerIP.

 至此,就可以把本机的IP配置到ServerIP来启动Web服务了.


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值