VS调用VB.NET函数连接SAP,无法创建ActiveX组件

qq374561854 2014-10-23 11:39:13
求助各位大神,我是用C#2012开发了一个软件,调用了一个使用VB.NET来连接SAP的函数,在本机上面测试的时候没有问题,放到Server2003服务器上面测试页没有问题,但是放到Server2008服务器上面却老是 提示无法创建ActiveX组件。
后来有放到装了VS2012开发软件的云服务器上面,也是Server2008服务器但是没有安装SAP,一样提示无法创建ActiveX组件。
又因为我的电脑是双系统-(XP+Win7),后面我又在我的电脑上面的XP系统测试,也是无法创建ActiveX组件。
这个问题我解决了很多天,都没有办法!关于那些引用到的组件我也部署到客户端了!
软件在上面的系统都能打开,就是调用那个函数的时候报错。本来使用VS的函数也可以连接SAP,但是按照我目前的能力只能因为VS无法解决SAP传值中文乱码的问题,只有VB可以解决。求大哥大神支招,谢谢~!
顺便问下,能否用VS解决连接SAP返回值的中文乱码问题,SAP是使用繁体,而我的开发环境都使用过简体和繁体,现在就剩下这个SAP链接问题了!谢谢!
附上错误提示:
System.Exception: 无法创键ActiveX组件
 Microsoft.VisualBasic.Interaction.CreateObject(String ProgId, String ServerName)
 SAP_MaiTou.SAP_MaiTou.ConnectToSAP()
 SAP_MaiTou.SAP_MaiTou.Get_SAP_Login()
 MaiTou.FrmMain.GetSap(String Fz_VBELN, String Fz_POSNR, String Fz_LANGUAGE)

附上有关联的代码:
'连接SAP
functionCtrl = CreateObject("SAP.Functions.Unicode", "") --- 我觉得是这个有关
sapConnection = functionCtrl.Connection
sapConnection.ApplicationServer = Sap_Server
sapConnection.Client = Sap_Client
sapConnection.SystemNumber = Sap_Number
sapConnection.Language = Sap_Language '读取繁体所用-重点
sapConnection.User = Sap_User
sapConnection.Password = Sap_Password
...全文
343 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
相思梦 2014-11-19
  • 打赏
  • 举报
回复
引用 3 楼 qq374561854 的回复:
[quote=引用 1 楼 Windowsvipcuvs 的回复:] 举个例子给你:


        string result = null;
        dynamic o = Activator.CreateInstance(Type.GetTypeFromProgID("Msxml2.XMLHTTP"));
        try {
            o.open("GET", "http://translate.google.cn/translate_a/t?client=t&text=" + content + "&hl=zh-CN&multires=1&otf=1&pc=0&sc=1from=&to=zh-CHS", false);
            o.setRequestHeader("Referer", "http://translate.google.cn/");
            o.setRequestHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; QQDownload 663; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727)");
            o.send();
            result = o.responseText;
            o.abort();
            result = result.Substring(result.IndexOf("[[") + 4, result.IndexOf(",") - 5);
        }
        catch { }
        finally { Marshal.ReleaseComObject(o); }

        return result;

你好,关于这个注册DLL的问题,我在网上也找了很多资料,有一个状况是!Server2008服务器上面注册我的自定的VB.NET组件时候,提示, 我也不懂这个VB.NET的组件怎么注册!很郁闷啊,如果你们有VS连接SAP能解决繁体字不乱码的!我可以直接用VS的函数,就不会那么麻烦了,今天也测试了一次XP的,同时的XP系统能够正常运行![/quote] 重新注册OCX
qq374561854 2014-10-24
  • 打赏
  • 举报
回复
上面的回复2楼的,回复错了!还有问下1楼,你给的函数是否是解决繁体字乱码的问题,能告诉我怎么用VS连接SAP能处理繁体字乱码的问题吗?主要是解决繁体字乱码的!谢谢!
qq374561854 2014-10-24
  • 打赏
  • 举报
回复
引用 1 楼 Windowsvipcuvs 的回复:

举个例子给你:


string result = null;
dynamic o = Activator.CreateInstance(Type.GetTypeFromProgID("Msxml2.XMLHTTP"));
try {
o.open("GET", "http://translate.google.cn/translate_a/t?client=t&text=" + content + "&hl=zh-CN&multires=1&otf=1&pc=0&sc=1from=&to=zh-CHS", false);
o.setRequestHeader("Referer", "http://translate.google.cn/");
o.setRequestHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; QQDownload 663; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727)");
o.send();
result = o.responseText;
o.abort();
result = result.Substring(result.IndexOf("[[") + 4, result.IndexOf(",") - 5);
}
catch { }
finally { Marshal.ReleaseComObject(o); }

return result;


你好,关于这个注册DLL的问题,我在网上也找了很多资料,有一个状况是!Server2008服务器上面注册我的自定的VB.NET组件时候,提示,
我也不懂这个VB.NET的组件怎么注册!很郁闷啊,如果你们有VS连接SAP能解决繁体字不乱码的!我可以直接用VS的函数,就不会那么麻烦了,今天也测试了一次XP的,同时的XP系统能够正常运行!
threenewbee 2014-10-23
  • 打赏
  • 举报
回复
检查下有没有注册好,有没有权限。
相思梦 2014-10-23
  • 打赏
  • 举报
回复
举个例子给你:


        string result = null;
        dynamic o = Activator.CreateInstance(Type.GetTypeFromProgID("Msxml2.XMLHTTP"));
        try {
            o.open("GET", "http://translate.google.cn/translate_a/t?client=t&text=" + content + "&hl=zh-CN&multires=1&otf=1&pc=0&sc=1from=&to=zh-CHS", false);
            o.setRequestHeader("Referer", "http://translate.google.cn/");
            o.setRequestHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; QQDownload 663; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727)");
            o.send();
            result = o.responseText;
            o.abort();
            result = result.Substring(result.IndexOf("[[") + 4, result.IndexOf(",") - 5);
        }
        catch { }
        finally { Marshal.ReleaseComObject(o); }
        return result;

110,526

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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