标题如何使用Cassini,我在测试Cassini时遇到的问题

我经常用ASP.NET来写一些小程序,写起来方便,但是要部署到客户的机器上,就成了麻烦事,客户的机器上不一定有IIS,并且用户不一定愿意安装那个东西,
所以这里我们要脱离IIS执行ASP.NET,就用到这们这里的cassini服务器,


为了测试他的可用性,我先在IIS下边做一个示例工程:C:/Inetpub/wwwroot/Casi
里边包含了,一个读取数据库返回DataSet的WebForm,和一个读取数据库返回DataSet的Service1.asmx
在IIS上测试没有问题,

接下来,测试Cassini

首先从asp.net上下载cassini的源代码,里边有编译好的exe程序,运行产生错误.
错误的内容:"cassini managed web server failed to start listening on port 8080.possible conflict with another web server on the same port"

发现这个错误后,我换了好几个不可能被占用的端口,都是相同一的错误,我感到非常奇怪,
找一个非常简单的端口扫描程序,检测了一下端口,发现我测试的端口,都是没有被占用的.
基于.net2.0 简单端口测试程序.

http://dl2.csdn.net/down4/20070627/27113631782.exe

直到找这篇文章.
http://blog.csdn.net/shanhe/archive/2004/11/10/176422.aspx

里边详细的说明的错误的原因,

我在这里复制一一下:)

我将所有的源代码拷贝到我的一个新建的工程里边,找到出错的地方,

   try  {
    _server 
=   new  Cassini.Server(portNumber, _virtRoot, _appPath);
    _server.Start();
    }
    
catch  {
    ShowError(
        
" Cassini Managed Web Server failed to start listening on port  "   +  portNumber  +   " . "   +
        
" Possible conflict with another Web Server on the same port. " );
    portTextBox.SelectAll();
    portTextBox.Focus();
    
return ;
    }

注释掉try catch,找到源代码,发现是server.cs文件里的CreateHost()这个函数

 

    System.Type _hosttype = typeof (Host);
    
object  o = ApplicationHost.CreateApplicationHost( _hosttype,_virtualPath, _physicalPath);

    
if (o  == null ){ throw   new  Exception( " 不能创建Application Host object " );}

    _host 
= as  Host;
    
if (_host  == null ){
        
throw   new  Exception( " 转换失败,请检查黯转换类型 " );
    }

将函数代码改成这样,发现错误在:
object o=ApplicationHost.CreateApplicationHost( _hosttype,_virtualPath, _physicalPath);

经shanhe的专栏中的提示后,悄然大悟
将编译成的cxyCassini.exe拷贝到C:/Inetpub/wwwroot/Casi/bin下,运行 exe文件,
写好端口:8080
填上路径,C:/Inetpub/wwwroot/Casi开始运行,
大功告成.呵呵

cassini配置示例

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值