【问题标题】:How to get server local drive path in vb.net?如何在 vb.net 中获取服务器本地驱动器路径?
【发布时间】:2013-07-13 01:32:07
【问题描述】:

这是c#的代码。

 protected string vault = System.Configuration.ConfigurationSettings.AppSettings["DocumentVault"]; 

以上代码用于获取服务器的c盘路径。 那么如何在 vb.net 中获取驱动 c 路径呢?

【问题讨论】:

  • 这是从 web.config 文件中获取密钥 - 那么,您想从 web.config 中获取密钥吗?还是来自网络应用程序位置的路径?
  • @RenarkLima,我想从网络应用程序的位置获取路径。但是如何在 vb.net 中做到呢?

标签: vb.net


【解决方案1】:

你试过了吗:

vault = System.Configuration.ConfigurationSettings.AppSettings("DocumentVault")

【讨论】:

    【解决方案2】:

    该代码到 VB.NET 的逐字翻译是:

    protected vault As String = System.Configuration.ConfigurationSettings.AppSettings("DocumentVault")
    

    在您的 web.config 中,您需要一个相应的密钥:

    <configuration>
           ....
         <appSettings>
           <add key="DocumentVault" value="C:\SomePath\SomeWhere\Else\"/>
         </appSettings>
        ....
    </configuration>
    

    但根据您的评论:

    “我想从 web 应用的位置获取路径。但是在 vb.net 中怎么做呢?”

    您需要映射应用根目录的路径:

    protected vault As String = Server.MapPath("~\")
    Trace.Write(vault) ' <-- Should return the physical root path of the web application
    

    【讨论】:

    • 把appSettings放在winForm App.config里是不是也一样?但是我试过了,它不能访问C盘。
    • @user2562841 在 App.Config 中应该是一样的 - 你得到一个返回的值吗?用消息框或标签写出vault,看看你得到了什么。如果您获得了您期望的值,但没有权限,那是另一个问题,并且运行应用程序/iis 的帐户将需要对驱动器/文件夹的正确权限。
    • 我使用 messagebox.show 可以获取路径。但是当我使用它将文件复制到 tat 路径时。不起作用。没有在该路径创建文件夹。或者如何查看权限?
    • 所以代码正在运行,你有路径 - 应用程序根本没有写入路径的权限。如果您右键单击目录,选择属性,然后选择安全性,请确保运行应用程序的用户帐户具有“修改”访问权限。您还需要单独创建子文件夹。您可以通过使用该帐户登录服务器/机器并尝试创建一个文本文档来测试这一点。
    • 你能浏览到那个路径吗?或者应用程序运行的帐户可以在那里浏览吗? UNC 应该可以使用,但是共享 C$ 通常仅限于管理员帐户,因为它可以完全访问机器的 C 驱动器。也许尝试在“SomePath”或“SomeWhere”上创建一个共享并映射到那个。简而言之,您的代码是正确的并且按预期工作。现在它是逻辑访问权限,因此属于网络管理员的职权范围。最好的选择,使用与应用相同的凭据登录,看看是否可以访问上述路径。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-25
    • 1970-01-01
    • 2013-02-23
    • 2011-09-20
    相关资源
    最近更新 更多