加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

解决wince与主机webservice的连接和访问问题?

发布时间:2020-12-16 22:06:34 所属栏目:安全 来源:网络整理
导读:1、安装IIS、并注册,参考百度经验:http://jingyan.baidu.com/article/9f7e7ec0547ecf6f2815548f.html 64位的windows操作系统上运行32位asp.net web应用程序的时候,出现试图加载格式不正确的程序的解决方法 这个是64位应用32位产生的问题。相信大家搜索的
1、安装IIS、并注册,参考百度经验:http://jingyan.baidu.com/article/9f7e7ec0547ecf6f2815548f.html

64位的windows操作系统上运行32位asp.net web应用程序的时候,出现试图加载格式不正确的程序的解决方法

这个是64位应用32位产生的问题。相信大家搜索的时候很多都是建议改把项目的AnyCPU改成X86,可是很不幸我的改不了。

终于搜索了半天后发现,IIS里解决才是根本办法:

1.生成时选择AnyCPU。

2.在IIS配置里面启用32位应用程序。

其中启用32位应用程序的方法如图:

2、将webservice发布到IIS

我们发布WebService的方法有两种,一种是通过VS可视化发布,还有一种是通过IIS配置发布。

1)我们右键单击WebService项目,选择发布,如下图:

?

路径我选择的是发布网站默认的路径,就是C:/inetpub/wwwroot/,然后我给它一个文件夹Web

点击确定后,状态栏给出发布结果信息。

2)如果上一步不成功,我们必须手动发布,首先检查你的IIS安装没有,控制面板->所有控制面板项->管理工具,如果没有IIS的话需要添加,这里不再赘述,百度上有方法。

将这几个文件放入一个文件夹中,记录物理路径(例如E:C#webpublishWebService1)准备发布:


打开IIS,右键单击网站,选择添加网站。

网站名称任意(test2)

物理路径选择刚才的文件夹E:C#webpublishWebService1

注意关键来了,这一步关系着wince能够访问主机发布的webservice,IP地址选择主机的IP地址(因为IP地址10.25.71.57我之前已经给test2了,所以test3我分配IP地址为169.254.2.2,同一个IP地址不能同时用于两个同样目录的网站,并分配端口号。


点击链接,选择特定用户,设置为你Window登录名和密码,如图:

设置完毕后可以测试设置,第二项windows授权可以通过。

然后为IIS虚拟目录创建单独的应用程序,方法是右键虚拟目录点击“添加应用程序...”,目录与刚才的虚拟目录物理路径要一致。


3、检查webservice是否发布成功

如果浏览器打开的网址是http://169.254.2.2/test3/Service1.asmx红色方框内的IP地址与之前选择的主机IP地址一样(无端口号),那么网站已经发布成功,之后可以用wince访问了。



将localhost替换成你计算机的IP,然后才能在PDA中引用,否则WinCE对http://localhost/test3/Service1.asmx的解析将出现问题,很简单的问题。这样添加也会由于配置不正确而出现访问不了的问题!



4、wince上访问webservice

建立一个智能设备应用程序,添加Web引用,我这里用的是静态引用,没有用动态引用的原因是,试过网上的动态生成WebService引用的代码,效率远比静态引用要低很多,考虑终端设备资源的有限性,还是用的静态引用。建立好项目后在界面上添加一个button和datagrid控件,添加代码:

  1. private webSer.Service1 ws;
  2. ? ? ? ? private void FrmMain_Load(object sender,EventArgs e)
  3. ? ? ? ? {
  4. ? ? ? ? ? ? ws = new DeviceApplication1.webSer.Service1();
  5. ? ? ? ? }
  6. ? ? ? ? //webmethod直接返回dataset
  7. ? ? ? ? private void btnDataSet_Click(object sender,serif; font-size:12px"> ? ? ? ? ? ? try
  8. ? ? ? ? ? ? {
  9. ? ? ? ? ? ? ? ? this.dtGrid.DataSource = null;
  10. ? ? ? ? ? ? ? ? DateTime dtBegin = DateTime.Now;
  11. ? ? ? ? ? ? ? ? DataSet ds = ws.GetDataSet();
  12. ? ? ? ? ? ? ? ? DateTime dtDown = DateTime.Now;
  13. ? ? ? ? ? ? ? ? this.dtGrid.DataSource = ds.Tables[0];
  14. ? ? ? ? ? ? ? ? MessageBox.Show(string.Format("下载耗时:{0},绑定数据耗时:{1},数据量:{2}",?
  15. ? ? ? ? ? ? ? ? ? ? dtDown - dtBegin,DateTime.Now - dtDown,ds.GetXml().Length));
  16. ? ? ? ? ? ? }
  17. ? ? ? ? ? ? catch (Exception ex)
  18. ? ? ? ? ? ? ? ? MessageBox.Show(ex.ToString());
  19. ? ? ? ? }
复制代码
连接好终端设备, 测试 点击按钮,几秒后DataGrid表格正确显示数据,OK,说明WinCE已经能够正确调用Web Service了。如果不能正确调用,检察WebService 发布 与Web引用是否正确,数据库配置是否正确。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读