2014-11-06 29 views
0

我有一个.aspx页面在我的项目里面有一个<a>链接下载.txt文件。ShellClass.BrowseForFolder(...)DialogBox没有显示

正在使用Shell32.ShellClassShell32.Folder2用于显示浏览文件夹为要求用户在哪里,你要保存的文件,而不是将其下载的默认文件夹Downloads

下面是我的C#显示DialogBox的代码。

Shell32.ShellClass shell = new Shell32.ShellClass(); 
      Shell32.Folder2 flder = (Shell32.Folder2)shell.BrowseForFolder(0, "Select destination folder", 0,"Desktop"); 
      if (flder == null) 
      { 
       dlgResult = DialogResult.Cancel; 
      } 
      else 
      { 
       strPath = flder.Self.Path; 
       dlgResult = DialogResult.OK;     
       File.WriteAllText(strPath + "\\NewFile.txt", "file content abc tex..."); 
      } 

问题:上面的代码工作正常,在当地但是当我在IIS主办的网站它不工作,不显示对话框。

在IIS中是否有任何特定的设置或配置?或者为什么它在IIS中托管时不工作?

请给我建议。

谢谢。

回答

0

您的C#代码在服务器上运行,而不是在网页中运行。当您以这种方式打开对话框时,它将在调用代码的上下文中运行。当作为IIS Express的一部分运行(或者以您运行的任何Web服务器)时,它将在您的Windows桌面上打开,因为它与您一样运行。在IIS中运行时,它以未连接到桌面的其他帐户运行,因此不会显示。

我不知道调用“另存为”功能将文件保存到JavaScript中的其他文件夹的方法。 execCommand函数可能会工作,但它因浏览器而异。某些版本的Internet Explorer also limit what file types can be downloaded this way