.NET C#调用sap的webservices获取数据,对于sap时间类型的处理

1.问题

调用sap的webservices,由于程序环境无法直接在项目中引用地址。故采用,在服务器拿到wsdl文件,后生成c#本地的形式。

问题一:如何生成代理类

问题二:生成代理类,编写程序。在正式环境使用时,却发现无法找到地址,无法使用

问题三:sap时间类型生成代理类后自动转化为c#的datetime类型,实际使用时出错(因为sap时间类型不完全对等于c#datetime)

问题四:服务在本机和测试机可以部署  在正式服务器无法部署

 

2.解决步骤

1.访问所提供地址,得到xml文件,改后缀为wsdl文件。(注:sap形式的webservices,地址后不用加“?wsdl”)

   在vs命令行里输入: wsdl  /l:cs /n:*** /o:***  wsdlFilePath  回车即可得到cs文件(只需记住wsdl l,n,o即可)

   /l:  全称为language,为所要生成的语言,这里选择“cs”;

  /n:  全称为NameSpace,为所要生成代理类的命名空间;

  /o:  全称为OutPut,为所要输出代理类的路径;

,  

 

2.无法找到地址,经查。

  在输入地址时使用的为类似 http://ip:port/Details,但在生成代理类后文件的地址信息为http://域名:port.Details

  或者地址直接为http://域名:port.Details  应用程序以后再部署到服务器上时,可能该服务器无法访问到该域名。

解决:C:\Windows\System32\drivers\etc下的host文件,加入本机域名映射信息。如下图所示

3.生成的代理类下,对象有以下属性     private System.DateTime zJSJField;  该字段其实只有日期没有时间,不完全对等于c#的DatetTime,在使用时产生错误。

解决:手动修改该类型为字符串类型。(应该有三处需要修改(成员变量,getset访问器,字段remarks))即可成功

4.服务使用topshelf和quartz,无法在服务器部署,报错信息为没有权限。

 解决:需要企业版的杀毒软件对服务的exe文件授权信任,或者暂时关闭掉安全软件,即可正确安装。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值