我有一个asp.net MVC应用程序,它允许用户将PDF上载到系统上(PDF文件保存到名为Surveys的文件夹中)。然后将PDF发送到Azure Read API上,并将返回的数据存储在系统上的.text文件中(这样我以后就可以将一些数据输入数据库中了。)
当我使用IIS Express在本地测试时,此方法工作正常;我可以上传PDF,并使用返回的文本制作一个.text文件。问题是,当我部署Web应用程序(在这种情况下,要使用aws弹性beantalk)时,上传PDF时会出现服务器错误:
“ / BookingSystem_deploy”应用程序中的服务器错误。 找不到路径'C:\ inetpub \ wwwroot \ Surveys \ aaf6d80a-230f-4583-b57a-bf44ef49b903.pdf'的一部分。
我的控制器:
[HttpPost]
public async Task<ActionResult> Upload(HttpPostedFileBase file)
{
string filename = Guid.NewGuid() + Path.GetExtension(file.FileName);
string filepath = @"C:\Users\35385\source\repos\BookingSystem\BookingSystem\Surveys\" + filename;
file.SaveAs(Path.Combine(Server.MapPath("/Surveys"), filename));
await AzureVisionAPI.ExtractToTextFile(filepath);
return View();
}
我猜测是否需要以某种方式更改“字符串文件路径”以支持部署后的目录更改?有人可以告诉我在这方面我需要做什么吗?或者如果错误与我完全不一样
编辑:在对我的问题进行了更多研究之后,我进行了一些更改
更改为控制器:
[HttpPost]
public async Task<ActionResult> Upload(HttpPostedFileBase file)
{
string filename = Guid.NewGuid() + Path.GetExtension(file.FileName);
string filepath = Server.MapPath(Path.Combine("~/Surveys/", filename));
file.SaveAs(Server.MapPath(Path.Combine("~/Surveys/", filename)));
await AzureVisionAPI.ExtractToTextFile(filepath);
return View();
}
现在,我收到另一个服务器错误(尽管尽管权限被拒绝,这听起来好像路径现在是正确的):
“ / BookingSystem_deploy”应用程序中的服务器错误。 拒绝访问路径'C:\ inetpub \ wwwroot \ BookingSystem_deploy \ Surveys \ 70c1528a-49ce-4ec2-814e-df83b150224e.pdf'。
有人能看到我在做什么吗?