WCF 服务:无法使用绝对路径获取服务器上的目录

发布于 2024-12-27 15:24:58 字数 786 浏览 0 评论 0原文

我编写了一个 WCF 服务,其功能是使用绝对路径获取服务器上的目录。

它在VS2010的调试模式下运行良好,触发临时可访问的服务。

然后我在这台服务器上部署了IIS下的服务。但是,它告诉我它无法获取该目录。

VS2010和IIS都在同一台服务器上。我想知道是否需要在此目录路径上添加或修改任何内容。我只是认为使用绝对路径应该有效...

这个简单的功能如下所示:

public void testDir() 
{
            string strPhotoRootPath = @"T:\Data\Image";

            if (!Directory.Exists(strPhotoRootPath))
            {
                ErrorMsg newError = new ErrorMsg();
                newError.errorCode = 1001;
                newError.errorDetails = "Cannot locate the photolog root directory";
                throw new WebFaultException<ErrorMsg>(newError, HttpStatusCode.Forbidden);
            }
            ... //rest codes
}

这个 T:\ 驱动器位于另一台服务器中,但可以从当前计算机访问。

希望我能在这里得到一些建议!提前致谢!

I wrote a WCF service with a function that using absolute path to get directory on server.

it works well in debugging mode of VS2010 which triggers a temporary accessible service.

Then I deployed the service under IIS at this server. However, it told me that it cannot get this directory.

both VS2010 and IIS are in this same server. I am wondering if anything i need to add or modify on this dir path. I just think using absolute path should work...

that simple function is like following:

public void testDir() 
{
            string strPhotoRootPath = @"T:\Data\Image";

            if (!Directory.Exists(strPhotoRootPath))
            {
                ErrorMsg newError = new ErrorMsg();
                newError.errorCode = 1001;
                newError.errorDetails = "Cannot locate the photolog root directory";
                throw new WebFaultException<ErrorMsg>(newError, HttpStatusCode.Forbidden);
            }
            ... //rest codes
}

this T:\ drive is in another server, but is accessible from current machine.

wish I can get some advice here! thanks in advance!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

雾里花 2025-01-03 15:24:59

您必须设置该文件夹的访问权限,以便运行应用程序池的帐户可以访问 t:\

You must set the access rights on the folder so that the account running your app pool can access t:\

山田美奈子 2025-01-03 15:24:59

使用 UNC 路径而不是映射的网络驱动器,因为映射的驱动器特定于您的用户帐户。此外,正如 KMan 指出的那样,请确保应用程序池标识有权访问 UNC 路径目标。

根据评论进行编辑:

这里一个资源关于如何在 Win2003 上使用 IIS6 设置应用程序池标识。在 IIS 中正确配置域帐户并且应用程序启动并运行后,您需要确保您使用的帐户具有共享权限以及该文件系统的权限。

Use the UNC path instead of a mapped network drive, as the mapped drive is specific to your user account. Also, as KMan pointed out, make sure the application pool identity has access to the UNC path destination.

EDIT based on comment:

Here's a resource on how to set the application pool identity using IIS6 on Win2003. Once you have the domain account correctly configured in IIS, and your application is up and running, then you'll need to make sure the account you used has permissions to the share, as well as permissions on that file system.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文