首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何验证IIS应用程序中的网络文件和文件夹

问如何验证IIS应用程序中的网络文件和文件夹
EN

Stack Overflow用户
提问于 2017-01-07 03:43:05
回答 2查看 123关注 0票数 0

我们在服务器B上有一个内部网web应用程序(ASP.NET 4.5)。它与SERVER-A在同一个域中。如何从Intranet应用程序检查服务器A上是否存在文件?我尝试使用File.Exits/Directory.Exis、FileWebRequest,但无法使其正常工作。是否有允许的IIS设置?

注意:我可以使用文件资源管理器从Server-B浏览Server-A上的文件。注意: HttpWebRequest“确实”可以在我们的外部网站上查找文件,但这种方法不适用于我们的内部网络。

方法A(结果始终为false)

代码语言:javascript
复制
File.Exists("\\xyz-123\Shipping\State\ca.doc")
Directory.Exists("\\xyz-123\Shipping\State")

方法B (result始终为false,并且不返回错误)

代码语言:javascript
复制
 'url = "file://xyz-123/Shipping/State/ca.doc"
 Private Function FileExist(url As String) As Boolean
    Dim response As WebResponse = Nothing
    Try
        Dim request = DirectCast(WebRequest.Create(url), FileWebRequest)
        request.Method = "HEAD"

        response = DirectCast(request.GetResponse(), WebResponse)
        FileExist = True
    Catch ex As Exception
    Finally
        If response IsNot Nothing Then response.Close()
    End Try

End Function
EN

回答 2

Stack Overflow用户

发布于 2017-01-07 03:49:34

如果您与运行代码的用户共享\\xyz-123\Shipping\State文件夹,则方法A将起作用。

票数 1
EN

Stack Overflow用户

发布于 2017-01-07 03:51:07

几乎可以肯定的是,您的问题与权限相关。您的IIS网站作为属于IIS中应用程序池的"IIS应用程序“运行。该应用程序池有一个与之关联的windows登录名。该登录名需要具有访问第二台计算机上的文件的权限。

要解决此问题,请查看IIS中的应用程序池设置,找出应用程序池在哪个用户下运行,然后更改文件共享上的权限以允许他们访问。要对此进行调试,您可以尝试将您自己的凭据分配给您的网站在其下运行的IIS应用程序池,您可能会发现它是有效的,因为您个人确实拥有访问文件的权限。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41513149

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档