【问题标题】:IIS Access for Visual Studio Asp.Net ApplicationVisual Studio Asp.Net 应用程序的 IIS 访问
【发布时间】:2015-05-20 11:31:31
【问题描述】:

我正在尝试通过在我的应用程序中单击按钮来访问网络位置的 Microsoft Word 文档。代码如下:

 Protected Sub Button3Click(ByVal sender As Object, ByVal e As System.EventArgs)
        Dim path3 As String = "full file path here"
        Dim wordApp As New Microsoft.Office.Interop.Word.Application
        Dim wordDoc As New Microsoft.Office.Interop.Word.Document
        wordApp.Visible = True
        wordDoc = wordApp.Documents.Open(path3)
 End Sub

我在 IIS8 上运行它,我的站点的应用程序池为 DefaultAppPool,身份为 ApplicationPoolIdentity。我的理解是,我需要做的是授予 DefaultAppPool 对相关文件的读取权限。我已授予对用户组 IIS_IUSRS 和 IUSR 的访问权限。由于我使用的是表单身份验证,如果我可以使用 IIS_IUSRS 访问,那么我应该能够访问该文件,但我不能。我相信我必须向我需要的文件授予对 IIS AppPool\DefaultAppPool 的访问权限,但是,该文件位于与网站不同的服务器上,因此它不是可用于该文件的组/用户名。有什么办法可以解决这个问题吗?

【问题讨论】:

  • 您认为wordApp.Visible = True : wordDoc = wordApp.Documents.Open(path3) 从 Web 服务器运行时会发生什么?它肯定不会在该网站访问者的机器上打开 Word。如果这不是您期望发生的情况,请解释您所说的“我不能” 是什么意思。您希望发生什么,以及会发生什么
  • @CodeCaster 我希望它能够在使用该网站的客户端上打开 Word。这不是它会做的吗?现在按钮单击只是将我重定向到我的登录页面,正如预期的那样,因为我无权访问它试图访问的文件。
  • 该代码在服务器上运行。它不会在客户端计算机上打开 Word。
  • 啊。那么,这当然不是我想要的。有没有办法在客户端机器上打开文档?在我的脑海中,我的第一个直觉是在 .aspx 页面中放置一个脚本块,其中包含一个在 MSWord 中打开文档的函数,然后将该函数作为按钮的 OnClientClick 属性调用。这可能吗?

标签: asp.net iis visual-studio-2013


【解决方案1】:

如果两台服务器都加入了域,那么您可以作为域中的用户运行您的应用程序(为运行您的站点而创建的帐户)。然后将远程文件的访问权限授予相关用户(新创建的帐户)。

【讨论】:

  • 我不确定您所说的加入域是什么意思。你能详细说明一下吗?
  • 网络服务器和文件服务器是否都加入了 Active Directory?
  • 我仍然不确定你的意思,但它们是同一网络上的两台不同的机器,所以我很想拒绝。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-10
  • 1970-01-01
  • 2021-02-10
  • 1970-01-01
  • 2014-01-19
  • 2020-11-29
  • 1970-01-01
相关资源
最近更新 更多