C# 更改Web APi根目录

C# 更改Web APi根目录,c#,iis,asp.net-web-api,asp.net-web-api2,iis-8.5,C#,Iis,Asp.net Web Api,Asp.net Web Api2,Iis 8.5,我有一个Web Api应用程序,当我向AmazonS3发布文件路径时,它会执行文件上传。如何更改此文件路径相对于的根目录?现在,如果我将myVideo.flv作为文件路径发送,我的应用程序将尝试在c:\windows\system32\inetsrv\myVideo.flv上查找要上载的文件。我想让它在c:\MyApp\files\myVideo.flv中查找文件。这是我在应用程序配置或iis中更改的内容吗 以下是我的控制器方法: [HttpPost] public HttpResponseMe

我有一个Web Api应用程序,当我向AmazonS3发布文件路径时,它会执行文件上传。如何更改此文件路径相对于的根目录?现在,如果我将
myVideo.flv
作为文件路径发送,我的应用程序将尝试在
c:\windows\system32\inetsrv\myVideo.flv
上查找要上载的文件。我想让它在
c:\MyApp\files\myVideo.flv
中查找文件。这是我在应用程序配置或iis中更改的内容吗

以下是我的控制器方法:

[HttpPost]
public HttpResponseMessage move([FromBody] Models.Request request)
{
    string videopath = request.videopath;

    try
    {
        PutObjectRequest putVideo = new PutObjectRequest
        {
            BucketName = WebApiConfig.AWSVideoBucket,
            Key = videopath,
            FilePath = videopath,
            ContentType = "video/flv"
        };

        PutObjectResponse videoResponse = WebApiConfig.AWSclient.PutObject(putVideo);

        if (videoResponse.HttpStatusCode == HttpStatusCode.OK)
        {
            return Request.CreateResponse(HttpStatusCode.OK);
        }
    }
    catch (FileNotFoundException e)
    {
        return Request.CreateErrorResponse(HttpStatusCode.NotFound, "File not found: " + e.Message);
    }
}

打开IIS,展开站点并找到您的网站,右键单击该网站并选择“添加虚拟目录”。此目录可以指向计算机上的任何位置。在你的应用程序中,你可以在应用程序根目录下读/写这个虚拟目录。还要注意权限,以确保访问站点的用户对该虚拟目录具有适当的权限。

在应用程序根目录下映射一个指向所需根文件夹的目录。我如何做到这一点?有什么例子吗?试过这个,它似乎没有任何作用。无论如何,我的applicationHost.config文件中似乎已经有一个指向正确目录的虚拟目录。它似乎仍在查找我提到的inetsrv目录中的文件。是
request.videopath
绝对路径还是相对路径?举个例子?亲戚。它可能是一个类似“myVideo.flv”或“files/myVideo.flv”的字符串。您是否尝试过对
c:\MyApp\files\myVideo.flv
文件路径进行硬编码,以查看是否可以从正确的位置提取文件?显然,这不是一个解决方案,但它将有助于调试硬件代码。事实上,目前我在Web.config中硬编码了我想要的根目录,我只是从那里获取它并将其添加到request.videopath中。但是是的,似乎应该有一种方法让我的应用程序自动使用这个目录。