webservice发布后,客户端无法运行

whbxhl 2008-12-22 08:02:09
一直做pb,刚接触pb11,做了一个pb11调用webservice的程序,在程序发布时出现问题,发布后,在本机可以正常运行,在客户端运行时如果点需要安装microsoft.net framework2.0和sybase powerbuilder .net runtime
在安装sybase powerbuilder .net runtime时会出现pbjvm110.dll无法注册的错误信息,程序下载到客户端后报错退出,如果没有点选安装上面两个文件,会出现弹出框:应用程序无法启动,请问有没有人遇到过这种情况?
...全文
268 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
31737951 2009-04-14
  • 打赏
  • 举报
回复
不是你客户端不能运行 是你根本没发布好 好好看帮助把
the7thsense 2009-04-13
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 benquan333 的回复:]
部署时不要用 localhost 用 IP 地址就可以解决问题了
[/Quote]
我也觉得可能是这个问题
31737951 2009-04-13
  • 打赏
  • 举报
回复
说实在的用pb做bs的发布很操蛋 ,必须在发布的机器上装pb 而且要 先在装 vs.net 后装pb 再装iis 因为装pb的时候会自动更新vs的包在里面添加pb的支持,
圣殿骑士18 2009-04-11
  • 打赏
  • 举报
回复
关注
benquan333 2009-04-06
  • 打赏
  • 举报
回复
部署时不要用 localhost 用 IP 地址就可以解决问题了
whbxhl 2008-12-23
  • 打赏
  • 举报
回复
感谢小雄,程序调试中.........................
xiongxiao 2008-12-23
  • 打赏
  • 举报
回复
拷贝到应用相同的目录

另外,你可以把这些DLL与你的程序放在一个目录中打成一个包,让用户下载就行了,无需安装

最好就是你自己慢慢测试你的程序需要哪些DLL,可以把不要的去掉,减小程序体积
whbxhl 2008-12-23
  • 打赏
  • 举报
回复
感谢小雄的回答,你是说要把sybase中的powerbuilder目录下的所有文件拷贝到客户机的powerbuilder文件夹下吗?
分布式开发需要这样吗?难道每台计算机都要拷贝吗?太麻烦了吧。
与代理同名的dll在哪里呢?又要拷贝到哪里呢?
我现在简直是一头雾水。
whbxhl 2008-12-23
  • 打赏
  • 举报
回复
楼上们说拷贝dll到客户端吗?
考到那个目录啊?做分布式开发,就是不让用户在本机安装程序啊,程序是通过ie下载到本地的。

有没有人做过pb11的webservice分布式开发程序,有没有人遇到过跟我相同的问题啊?
xiongxiao 2008-12-23
  • 打赏
  • 举报
回复
“如果你是用了web service做代理的话,要记得把与这代理相关的那个同名dll也要复制过去”
换一下说法:

如果你是生成了web service 代理的话,要记得把与这代理相关的那个同名dll也要复制过去
xiongxiao 2008-12-23
  • 打赏
  • 举报
回复
客户端如果已经装好了net2.0 的话,那就可以不需要用sybase powerbuilder .net runtime ,直接把PB安装目录下的share\powerbuilder下的文件全拷过去试一下,如果你是用了web service做代理的话,要记得把与这代理相关的那个同名dll也要复制过去
sjq521521 2008-12-23
  • 打赏
  • 举报
回复
严重关注中
liubocy 2008-12-23
  • 打赏
  • 举报
回复
没弄过,既然本机可用,客户端不行。那估计就是环境的问题。如果缺dll,把pb安装目录下的shared文件夹中的dll复制过去
dawugui 2008-12-22
  • 打赏
  • 举报
回复
估计是你缺少某些动态库,你把相关动态库拷贝过去试试.
如果不知道是哪些动态库,就全部拷贝过去,然后程序启动后,再一个一个删除,不能删除的就是需要留下的.
完整的服务端及客户端调用程序,在win7+ vs2015环境运行通过. 一、说明 1、创建winfrom应用程序;(或者是控制台项目) 2、在项目中添加一个WCF服务,并实现服务; 3、在需要启动WebService服务的地方启动该服务即可; 二、代码如下: 1、新建一个WCF服务——定义服务接口    [ServiceContract(Namespace = "http://Microsoft.ServiceModel.Samples")]     public interface ICalculator     {         [OperationContract]         double Add(double n1, double n2);     } 2、新建一个WCF服务——实现服务 public class CalculatorService : ICalculator     {         public double Add(double n1, double n2)         {             return n1 + n2;         }     } 3、添加完WcF服务后会在应用程序配置文件中有入下节点                             <!--TestServer.ICalculator服务定义的接口,根据自己定义进行修改-->                                                                   <baseAddresses> <!--这个是要发布的服务地址,可以进行修改-->                                   </baseAddresses>                   4、在要启动服务的地方启动服务监听   public frmMain() { InitializeComponent(); } private void frmMain_Load(object sender, EventArgs e) { try { //打开服务创建监听,并开始监听消息 ServiceHost serviceHost = new ServiceHost(typeof(Service1));//需要using System.ServiceModel; serviceHost.Open(); label1.Text = "服务启动正常"; } catch (Exception ex) { label1.Text = ex.Message; } } 5、下面可以在客户端通过上面的服务地址”http://xxx.xxx.xxx.xx:8733/test/Service1/“对服务进行调用 到这步就实现在控制台中实现webService发布

662

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder Web 应用
社区管理员
  • Web 应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧