登录
用户中心(
)
[退出]
后台管理
注册
只搜索本区
您的位置:
首页
>>
程序员学前班[不再更新,只读]
>> 主题: [c#/aspx/http]重编译WebDev.WebServer,使其支持网络应用
[回主站]
[分站链接]
您的位置:
首页
>>
程序员学前班[不再更新,只读]
>> 主题: [c#/aspx/http]重编译WebDev.WebServer,使其支持网络应用
[最新]
[回主站]
标题
[c#/aspx/http]重编译WebDev.WebServer,使其支持网络应用
clq
浏览(0) +
2010-10-15 11:51:34 发表
编辑
关键字:
来自 http://www.cnblogs.com/zhujiechang/archive/2009/07/30/1534898.html
clq
2010-10-15 11:52:11 发表
编辑
自从Vs2005起,Vs开发环境便自带了WebDev.WebServer,就是这个图标
,它实际上是一个小型的Web服务器,专用于.net平台。大家经常调试程序它还是相当的方便,经过小小的配置就可以指向某个文件夹,使该文件夹成为网站目录已供访问。
WebDev.WebServer确实很轻便,同时它本身是.net程序,才2个文件,作为测试和演示环境是非常的好用,在xp也能很好的运行,Xp的IIS5实在是不方便用。
但是自带的WebDev.WebServer只能用于本机,那是因为MS对其进行了限制,因为作出它的目的,本身是为了Vs的开发更方便而已,但是很多测试也是基于网络的,至少你不希望别人测试一些网站,总得来用你的电脑吧。
WebDev.WebServer一共是两个文件,一个是WebDev.WebServer.exe,另一个是WebDev.WebHost.dll,另 外说一下WebDev.WebServer是安装开发环境才有的,不是安装.net framework里面的东东,所以你提取这两个文件都需要已经安装有开发环境下来进行。
WebDev.WebServer.exe在C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727目录下,如果 安装Vs2008可以在C:\Program Files\Common Files\Microsoft Shared\DevServer\9.0目录下找到,而WebDev.WebHost.dll则不在那里,WebDev.WebHost.dll在安装 时候作为全局程序集已经被编译到C:\windows\
Assembly
\XXXX....下, 根据你安装的vs2005还是vs2008相关,一共有两个,一个是vs2005的,一个是vs2008的,它们与 WebDev.WebServer.exe互相对应,获得方法是来到命令行窗口,使用原始的命令copy 目标文件 c:\得到,这个DLL也是纯.net的。
获得这两个文件然后用reflector来反编译下,获得其源码,呵呵很方便吧,本身的源代码都不长。
然后经过简单加工下使其能够编译运行,又远程访问试下,不行,提示什么?提示拒绝访问,但是说明连接上了,跟踪下代码来到以下设置:
private
bool
TryParseRequest()
{
this
.Reset();
this
.ReadAllHeaders();
if
(
!
this
._connection.IsLocal)
{
this
._connection.WriteErrorAndClose(
0x193
);
return
false
;
}
if
(((
this
._headerBytes
==
null
)
||
(
this
._endHeadersOffset
<
0
))
||
((
this
._headerByteStrings
==
null
)
||
(
this
._headerByteStrings.Count
==
0
)))
{
this
._connection.WriteErrorAndClose(
400
);
return
false
;
}
。。。。。。
}
看到
this
._connection.IsLocal
这个判断,摆明是故意的...,注释掉重编译,运行,再访问,OK。
程序还有一个细节是WebDev.WebServer对执行站点目录采用Remoting远程代理方式来载入主机的。
if
(host
==
null
)
{
lock
(
this
._lockObject)
{
host
=
this
._host;
if
(host
==
null
)
{
//
初始化目标路径中的WebDev.WebHost
InitHost();
string
appId
=
(
this
._virtualPath
+
this
._physicalPath).ToLowerInvariant().GetHashCode().ToString(
"
x
"
, CultureInfo.InvariantCulture);
this
._host
=
(Host)
this
._appManager.CreateObject(appId,
typeof
(Host),
this
._virtualPath,
this
._physicalPath,
false
);
this
._host.Configure(
this
,
this
._port,
this
._virtualPath,
this
._physicalPath,
this
._requireAuthentication);
host
=
this
._host;
}
}
}
这就需要在站点目录的bin目录下面放入WebDev.WebHost.dll,(因为开发环境下已经配置到了全局程序集所以不需要),InitHost()这个方法是我自己加的,用于自动copy WebDev.WebHost.dll到站点目录下。
项目源代码我已经发布了,用vs2008项目来编译的,可以在我的空间找到http://ocean.ys168.com找到,另外在使用的时候需要对WebDev.WebServer项目进行一下自己的配置。
命令行参数里面请指向你自己要测试的站点目录。
源代码下载。
/Files/zhujiechang/webdev.rar
Tag标签:
C#
,
WebDev.WebServer
,
网络应用
,
.net
,
小型的Web服务器
,
WebDev.WebHost.dll
breeze
关注 - 0
粉丝 - 1
关注博主
8
4
0
(请您对文章做出评价)
«
上一篇:
ASP.NET下QueryString不同字符编码间强制转换的解决方案
»
下一篇:
Ext、以及Coolite下实现表格锁定列和多行表头
posted on 2009-07-30 12:00
breeze
阅读(2349)
评论(17)
编辑
收藏
Feedback
1933878
#1楼
2009-07-30 12:27 |
wuyou[未注册用户]
没有资源文件编译不了
回复
引用
#2楼
2009-07-30 12:32 |
▄︻┳═一熱血殺手
好!
之前也有想过,感谢!
回复
引用
查看
#3楼
2009-07-30 12:45 |
徐少侠
老大我爱你
呵呵,没有做不到,只有想不到啊
回复
引用
查看
#4楼
2009-07-30 12:49 |
哈哈啊[未注册用户]
牛哥,i love you
回复
引用
#5楼
2009-07-30 13:06 |
::似水无痕::
不错不错,临时使用很方便
回复
引用
查看
#6楼
2009-07-30 13:07 |
假正经哥哥
不错哦
回复
引用
查看
#7楼
2009-07-30 15:04 |
andy.wu
记得很久以前,就在csdn上的博客好象看过,当时惊为天人。
回复
引用
查看
#8楼
[
楼主
]
2009-07-30 15:21 |
breeze
@
andy.wu
声明一下绝对原创,我不清楚哪里还发布过类似的文章,如果和我这里写的一样,请注明转载我这里:),小型的Web应用服务端网上确实比较多,但是各自实现的方法是不一样的,例如:IIsAdminNet
回复
引用
查看
#9楼
2009-07-30 15:54 |
andy.wu
呵呵,是我不好,没说清楚,楼主不要误会。我只是印象中很久以前看到过。看来搞WebDev.WebServer好象不多啊,我是觉得这个很有用的。
回复
引用
查看
#10楼
2009-07-30 16:18 |
钧梓昊逑
他这个实现性能很差,用于调试还行,作服务器就算了。
回复
引用
查看
#11楼
2009-07-30 16:23 |
nasa
很感谢 测试用这个很方便
回复
引用
查看
#12楼
2009-07-30 18:04 |
pq
目前为止还是想不明白你重新编译这个东东有什么用?
只有这个离开了IDE照样不能调试呀。
难道想拿它来代替IIS吗?
回复
引用
查看
#13楼
2009-07-31 11:01 |
JacksonLin
这个东西也用过,MS做了坑.
一部分的.net runtime会有bug的.
再是默认会跑debug track断,带跟踪,性能上出问题了.
听说外国有个类似的东西.
我也收集过国内有人重写这个东西,但实在太粗...
回复
引用
查看
#14楼
2009-08-15 22:52 |
阿牛 - 专注Web开发
附件不能用.
回复
引用
查看
#15楼
[
楼主
]
2009-11-11 12:09 |
breeze
@
阿牛 - 专注Web开发
可以的,用vs2008编译,生成解决方案那里我去掉编译了,你手工添加回来即可,或者逐项目生成
回复
引用
查看
#16楼
2009-12-02 16:33 |
yoyoyoyo[未注册用户]
很方便 谢谢博主!
回复
引用
#17楼
2010-10-13 16:10 |
拽拽
代码下载后,还要重新改一下几个引用。不然是无法正常编译。找不到资源
回复
引用
查看
总数:
1
页次:
1
/1
首页
尾页
总数:
1
页次:
1
/1
首页
尾页
所在合集/目录
发表评论:
文本/html模式切换
插入图片
文本/html模式切换
附件:
NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.
Copyright © 2005-2020 clq, All Rights Reserved
版权所有
桂ICP备15002303号-1