Webserver应用程序权限问题

时间:2009-07-20 19:53:32

标签: .net permissions

我们的服务器上安装了一个.NET Web应用程序:C:\Inetpub\fmtool\

我们的某个实用程序会将文件上载到已安装目录的子文件夹中。

我们以编程方式为此上传文件创建文件夹结构,以确保文件夹结构的完整性。这很好用。

然而,在实际文件复制期间(使用asp文件上传控件),我们收到权限错误,表示访问被拒绝。

我确保运行服务器上的应用程序的用户帐户完全控制文件系统(当然在开发中),我们仍然会收到此拒绝访问错误。

FileUpload似乎很直接:

fuiUpload.SaveAs(path);

从Web.Config中取出“路径”

<add key="ActualsImportPath" value="C:\Inetpub\fmtool\ActualsImport\Alpha"/>

如果我们在本地运行,我们需要在开头时使用完整的合格服务器信息吗?

例如:

<add key="ActualsImportPath" value="\\SERVER-NAME\c$\blah"/>

更新

检查我的代码后。我发现了一个明显的错误。在我尝试处理SaveAs()时,我实际上没有设置完整的“路径”变量。一个简单的错误造成了很多麻烦。谢谢大家的帮助。如果感兴趣,请参阅下面的代码

之前:

if (fuiUpload.HasFile)
{
    // Did not have the complete path here.....
fuiUpload.SaveAs(path);

// Run the importer
switch (rblImportType.SelectedValue)
{
    case "0": 
    path += @"\Nightly Costing\" + DateTime.Now.ToString("yyyyMMdd") + "-NightlyCosting.csv";
    break;

后:

if (fuiUpload.HasFile)
{
// Run the importer
switch (rblImportType.SelectedValue)
{
    case "0": 
    path += @"\Nightly Costing\" + DateTime.Now.ToString("yyyyMMdd") + "-NightlyCosting.csv";
    fuiUpload.SaveAs(path);
    break;

3 个答案:

答案 0 :(得分:1)

如果我了解您的更新,您已解决了问题,对吗?我确实想对设置网络用户帐户的权限发表评论。提供文件CRUD访问此帐户通常不是最佳做法。该帐户拥有太多的权力,无法获得这种访问权限。我建议创建一个帐户,其唯一目的是从您的网络应用程序访问文件系统。然后,您可以使用模拟来访问文件系统的代码以该帐户为幌子。

希望你的一切运转良好。

戴夫兰克 www.daveranck.com [fitnessforeveryman.com] [2]

答案 1 :(得分:0)

如果这是IIS 6.0服务器,则需要为该文件夹授予网络服务写入/创建权限。

请注意,“网络服务”标识是网站的默认标识。如果上述修复不起作用,请检查“身份”选项卡以查找与应用程序文件夹关联的应用程序池。

答案 2 :(得分:0)

检查我的代码后。我发现了一个明显的错误。在我尝试处理SaveAs()时,我实际上没有设置完整的“路径”变量。一个简单的错误造成了很多麻烦。谢谢大家的帮助。如果感兴趣,请参阅下面的代码

在:

if (fuiUpload.HasFile)
{
    // Did not have the complete path here.....
    fuiUpload.SaveAs(path);

    // Run the importer
    switch (rblImportType.SelectedValue)
    {
        case "0": 
        path += @"\Nightly Costing\" + DateTime.Now.ToString("yyyyMMdd") + "-NightlyCosting.csv";
        break;

后:

if (fuiUpload.HasFile)
{
// Run the importer
switch (rblImportType.SelectedValue)
{
   case "0": 
   path += @"\Nightly Costing\" + DateTime.Now.ToString("yyyyMMdd") + "-NightlyCosting.csv";
   fuiUpload.SaveAs(path);
   break;