转发文件上传的详细信息到另一个远程服务

问题描述:

我有一个上传文件的服务,效果很好。转发文件上传的详细信息到另一个远程服务

是否有可能提交文件上传到asp.net方法(如正常上传),但然后转发上传文件的详细信息到远程服务。因此,使用asp.net方法作为代理而不是实际的上传方法?

实际的文件保存将在远程服务完成。

注 我使用C#和.NET 3.5

问候

+1

从技术上讲,这是可能的。尽管需要更多细节。如何上传文件,其他服务如何接收传入数据等。 – GrayWizardx 2009-12-29 19:08:58

+0

你想保存什么?这将节省您的存储空间,但这会占用您的带宽......这是目标吗? – Nate 2009-12-29 19:20:45

+0

我正在使用表单文件上传控件。远程服务是一个处理程序,它读取Http.Context并从中获取文件数据。 – Theo 2009-12-29 19:28:21

如果您使用的是ASP.NET方法,必须将文件上传到服务器。但是,它不必使用“另存为”方法或任何其他方法进行保存。您可以直接以文件流的形式访问该文件,如果您可以向其他服务发送流,则可以将该文件传递给您的其他服务。

的想法是在这个博客帖子(略有不同的用途,但同样的想法)解释说:
http://weblogs.asp.net/meligy/archive/2008/02/18/unit-test-friendly-file-upload-handling-in-n-tier-applications.aspx

所以,如果你调用远程服务可以简化为喜欢的方法:

public void MyServiceMethod(Stream inputStream) { ........ } 

您可以通过页面传递文件内容而无需像下面这样保存:

myService.MyServiceMethod(myFileUploadControl.PostedFile.InputStream); 
+0

很感谢,虽然脚本执行时间等不会有一些超时问题吗?我纯属猜测。 – Theo 2010-01-12 04:53:48

+0

我只在同一个应用程序域中的2层之间的本地通信中尝试过它,但重点是:我认为没有其他方式在服务之间传输二进制文件数据。如果测试中发生这些挑战,您可以使用一些WCF魔术来管理这些挑战。 – Meligy 2010-01-12 07:36:19