2

我有一个 MVC 应用程序并部署到服务器,我只有 ftp 访问权限,应用程序的名称是test.foo.com. 有一个后端,用户可以将图片上传到应用程序。一切都很好。代码如下:

//in web config this is the value
<add key="NewsImagesPath" value="~/App_Data/NewsImages/" />

// this is in controller
private static readonly string news_images_path = ConfigurationManager.AppSettings["NewsImagesPath"]; 

// in the method
String uploadedFile = fileUploadHelper.UploadFile(file, Server.MapPath(news_images_path));

这里是返回上传路径的fileuploadhelper:

public class FileUploadHelper
{
    public string UploadFile(HttpPostedFileBase file, string path)
    { 
        if (file != null && file.ContentLength > 0)
        { 
            FileInfo fileInfo = new FileInfo(file.FileName);
            string fileName = Guid.NewGuid() + fileInfo.Extension;
            var uploadPath = Path.Combine(path, fileName);

            file.SaveAs(uploadPath);
            return uploadPath;
        }

        return null;
    } 
}

那么这段代码工作正常。

问题是这个应用程序何时部署到foo.com. 图片仍在上传到test.foo.comApp_Data 文件夹。

即:我正在从 foo.com 上传图像,图像存储在:

c:\inetpub\wwwroot\test.foo.com\App_Data

而它应该去

c:\inetpub\wwwroot\foo.com\App_Data

为什么会这样?

我不知道如何配置服务器,IIS。

4

1 回答 1

2

Server.MapPath("~")指向配置运行 ASP.NET 应用程序的物理根文件夹。test.foo.com所以我猜想在 IIS 中有一些配置,因此两者foo.com实际上都指向同一个应用程序。如果您无法访问服务器来检查这一点,那么除了联系您的托管服务提供商并询问有关如何设置这些域以及它们映射到哪些应用程序的更多详细信息之外,您无能为力。

于 2012-12-31T23:06:28.570 回答