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

简介: 我经常用ASP.NET来写一些小程序,写起来方便,但是要部署到客户的机器上,就成了麻烦事,客户的机器上不一定有IIS,并且用户不一定愿意安装那个东西,所以这里我们要脱离IIS执行ASP.NET,就用到这们这里的cassini服务器, 为了测试他的可用性,我先在IIS下边做一个示例工程:C:/Inetpub/wwwroot/Casi里边包含了,一个读取数据库返回DataSet的WebForm,

我经常用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配置示例

 

相关文章
|
JSON 数据格式
uniapp自定义头部导航样式
uniapp自定义头部导航样式
498 0
|
存储 固态存储 关系型数据库
性能优化特性之:16K原子写
本文介绍了在倚天实例上进行内存优化的调优特性:16K原子写 的优化原理、使用方法。
|
Oracle 关系型数据库 数据库
postgresql|数据库|数据迁移神器ora2pg的安装部署和初步使用
postgresql|数据库|数据迁移神器ora2pg的安装部署和初步使用
1026 0
|
10月前
|
人工智能 Kubernetes Cloud Native
写在最前的话
本文是“拥抱云计算”系列的导语。文章回顾了作者与云计算的缘分始于2013年,并阐述了对云计算的理解:云计算是一种通过解耦实现业务弹性的架构。该系列文章旨在分享云计算技术栈、架构等核心思想,计划涵盖阿里云、分布式、微服务、云原生等主题,同步更新于微信公众号@云上的喵酱等平台。期待与读者共同探索云计算的奥秘。
171 18
写在最前的话
|
9月前
|
负载均衡 网络协议 容灾
【飞天技术沙龙】云解析 DNS 上海站《多云+IDC 融合场景下的 DNS 最佳实践》圆满落幕
【飞天技术沙龙】云解析 DNS 上海站《多云+IDC 融合场景下的 DNS 最佳实践》圆满落幕
227 0
|
8月前
|
小程序 搜索推荐 Android开发
Axure原型模板与元件库APP交互设计素材(附资料)
Axure是一款强大的原型设计工具,广泛应用于APP和小程序的设计与开发。本文详细介绍Axure的常用界面组件元件库、交互设计素材,涵盖电商、社区服务、娱乐休闲、农业农村、教育等领域的多套交互案例。通过手机模型、矢量图标、通用组件等资源,设计师可高效构建原型并模拟用户操作,评估界面效果。Axure支持导出和分享,助力团队协作,推动更多优秀应用的诞生。
1006 6
|
弹性计算 Serverless 应用服务中间件
ECS迁移问题之跨账号迁移ECS如何解决
ECS(Elastic Compute Service,弹性计算服务)是云计算服务提供商提供的一种基础云服务,允许用户在云端获取和配置虚拟服务器。以下是ECS服务使用中的一些常见问题及其解答的合集:
|
缓存 算法
KV cache复用与投机采样问题之多轮对话复用KV cache对FTT变长问题如何解决
KV cache复用与投机采样问题之多轮对话复用KV cache对FTT变长问题如何解决
576 0
|
存储 缓存 资源调度
三巨头对决:深入了解pnpm、yarn与npm
三巨头对决:深入了解pnpm、yarn与npm
1321 0
|
SQL Cloud Native 关系型数据库
云原生分布式数据库有哪些
云原生分布式数据库有哪些
298 0