C# 从内部服务器外部下载文档

C# 从内部服务器外部下载文档,c#,asp.net,iis,reverse-proxy,C#,Asp.net,Iis,Reverse Proxy,这有点奇怪。。。。我们有一个在服务器A上运行的内部web应用程序和一个在服务器B上运行的文档存储库 我在一个页面上有一个简单的链接,我想让用户能够从IIS服务器a下载一个文档。但是,在用户单击按钮之前,该文档在服务器a上不存在,因为有40多个文档要显示,无法在页面加载时全部加载 当用户单击链接时,系统会提示我下载 文档被复制到服务器A,然后重定向到浏览器提示他们下载的页面。我相信我已经正确地设置了内容标题,并且它在FireFox中工作 IE7只是弹出一个窗口,然后窗口消失,如果我关闭安全设置,它

这有点奇怪。。。。我们有一个在服务器A上运行的内部web应用程序和一个在服务器B上运行的文档存储库

我在一个页面上有一个简单的链接,我想让用户能够从IIS服务器a下载一个文档。但是,在用户单击按钮之前,该文档在服务器a上不存在,因为有40多个文档要显示,无法在页面加载时全部加载

当用户单击链接时,系统会提示我下载 文档被复制到服务器A,然后重定向到浏览器提示他们下载的页面。我相信我已经正确地设置了内容标题,并且它在FireFox中工作

IE7只是弹出一个窗口,然后窗口消失,如果我关闭安全设置,它可以正常工作,但这不是一个选项


有没有办法解决这个问题。我无法直接指向ServerB上的文档


添加:是的,服务器B也是一个Web服务器

您可以使用ajax吗?例如,用户单击发送请求以将文件从B获取到a的按钮,页面上将显示一个微调器。复制完成后,禁用微调器并向用户提供下载链接

我被否决了,没有评论权限,所以我想在这里详细说明一下,也许这只是一个糟糕的解决方案,我看不出来:

用户通过单击链接请求文件 请求被发送到服务器A,它通过ajax禁用链接 服务器A将文件从服务器B复制到临时目录 服务器A向临时文件夹中的文件发回链接
如果文档服务器不是Web服务器SMB、AFS、NFS等,这将起作用。

可以使用ajax吗?例如,用户单击发送请求以将文件从B获取到a的按钮,页面上将显示一个微调器。复制完成后,禁用微调器并向用户提供下载链接

我被否决了,没有评论权限,所以我想在这里详细说明一下,也许这只是一个糟糕的解决方案,我看不出来:

用户通过单击链接请求文件 请求被发送到服务器A,它通过ajax禁用链接 服务器A将文件从服务器B复制到临时目录 服务器A向临时文件夹中的文件发回链接
如果文档服务器不是Web服务器SMB、AFS、NFS等,这将起作用。

如果世界可以看到服务器a,服务器a可以看到服务器B。我建议设置反向代理

基本上,这允许世界从服务器B下载,但只能通过反向代理。您可以使用以下规则使用上述库创建反向代理接口

重写规则^/download/*$1[NC,p]

那么在

实际上,它会要求

但是它会像来自服务器a一样被传递,这在技术上是通过反向代理创建从服务器a到服务器b的web连接,并将HTTP响应复制到服务器a的响应来实现的


如果您需要帮助,请告诉我。

如果世界可以看到服务器A,服务器A可以看到服务器B。我建议设置反向代理

基本上,这允许世界从服务器B下载,但只能通过反向代理。您可以使用以下规则使用上述库创建反向代理接口

重写规则^/download/*$1[NC,p]

那么在

实际上,它会要求

但是它会像来自服务器a一样被传递,这在技术上是通过反向代理创建从服务器a到服务器b的web连接,并将HTTP响应复制到服务器a的响应来实现的


如果您需要帮助,请告诉我。

当您的解决方案出现时,我正在编写相同的解决方案:-。我只想指出一个警告,服务器B需要一个web服务器才能工作。非常正确,我想我做出了这样的假设,但是这通常很容易实现。如果不是服务器,应该使用网络驱动器从a传送文件。当您的出现时,我正在编写相同的解决方案:-。我只想指出一个警告,服务器B需要一个web服务器才能工作。非常正确,我想我做出了这样的假设,但是这通常很容易实现。如果不是服务器,应该使用网络驱动器从a传送文件。有什么办法解决这个问题吗。我无法直接指向ServerB上的文档,因为最后一句话,所以无法完成。这非常糟糕,因为它依赖于不必要的操作,例如禁用链接。您也可以轻松地单击链接下载文件,然后用文件响应,而不使用所有AJAX。浏览器将在等待响应时被锁定。有没有解决方法。我无法直接指向ServerB上的文档,它无法完成
因为这最后一句话。这真的很糟糕,因为它依赖于不必要的操作,比如禁用链接。您也可以轻松地单击链接下载文件,然后用文件响应,而不使用所有AJAX。浏览器将在等待响应时被锁定。