首页 新闻 会员 周边

webservice提供文件上传问题?用基于反射动态调用webservice中的方法,service中的方法用的FileStream方式保存文件。

0
悬赏园豆:50 [已关闭问题] 关闭于 2011-01-08 16:40

            {.............................................

            Assembly asm = result.CompiledAssembly;
            Type t = asm.GetType("FileUploadService");           
            object o = Activator.CreateInstance(t);
            MethodInfo method = t.GetMethod("SaveFile");
            object[] oArr = new object[] {"20101204.txt", Encoding.ASCII.GetBytes("上传内容") };

             //以上均能正常执行,且都不为null.
             method.Invoke(o, oArr);}

其中执行到method.Invoke(o, oArr);时报“TargetInvocationException调用的目标发生了异常。”,想了两天都没解决,急。。。看到问题的朋友希望给小弟点方法解决问题,先谢过。

问题补充: 直接url此webservice中的保存文件方法为: <soap:Body> <SaveFile xmlns="http://tempuri.org/"> <savePath>string</savePath> <fn>string</fn> <data>base64Binary</data> </SaveResourceFile> </soap:Body> 而且项目本地局域网上传都正常的,能上传。项目发布到外网后就不行了。
Tonglu的主页 Tonglu | 初学一级 | 园豆:150
提问于:2010-12-04 17:01
< >
分享
所有回答(3)
0

没看明白你是说的是反射的问题还是webservie调外网出问题。

TargetInvocationException 是反射调用异常,而不是具体的webservice抛出的异常。如果你只是再外网调用有问题,你可以尝试不用反射调用试试,看看具体异常,在此之前无法下结论。可能会是网络问题:)

LittlePeng | 园豆:3445 (老鸟四级) | 2010-12-04 23:06
外网访问webservice能正常访问,但是就是文件保存不起。外网访问webservice,这可以说明网络是正常的。而且我在内网测试webservice和上传都没报错,文件都能直接保存到服务器。
支持(0) 反对(0) Tonglu | 园豆:150 (初学一级) | 2010-12-05 15:34
0

FileUploadService.SaveFile 第一参数是文件名还是文件绝对路径?

鹤冲天 | 园豆:2379 (老鸟四级) | 2010-12-07 20:05
0

上传文件,应该用 FTP ,很明显 webservice 不适合传输 FTP.

杰克伦敦尘 | 园豆:274 (菜鸟二级) | 2010-12-07 22:12
其实是我的webservice地址没有端口号,我用PropertyInfo property = type.GetProperty(o);property.SetValue(o, "url", "http://xxx.asmx:888"l);// 就OK...
支持(0) 反对(0) Tonglu | 园豆:150 (初学一级) | 2011-01-08 16:39
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册