C# 文件上载在Visual Studio IIS Express中工作,但不在服务器上
我有一个web应用程序的视图,其中一个文件由用户上传以预先填写表单。表单所在的视图有两个C# 文件上载在Visual Studio IIS Express中工作,但不在服务器上,c#,asp.net-mvc,visual-studio,iis,iis-express,C#,Asp.net Mvc,Visual Studio,Iis,Iis Express,我有一个web应用程序的视图,其中一个文件由用户上传以预先填写表单。表单所在的视图有两个Html.BeginForm声明,一个用于上载文件,另一个用于提交已填写的表单。当我使用IIS Express在本地进行调试时,一切正常,但当我部署到开发服务器时,文件不会上载。我希望有人能提供一些关于为什么会发生这种情况的见解 文件上载摘录自视图: @using (Html.BeginForm("Populate", "ScProject", FormMethod.Post, new { enctype =
Html.BeginForm
声明,一个用于上载文件,另一个用于提交已填写的表单。当我使用IIS Express在本地进行调试时,一切正常,但当我部署到开发服务器时,文件不会上载。我希望有人能提供一些关于为什么会发生这种情况的见解
文件上载摘录自视图:
@using (Html.BeginForm("Populate", "ScProject", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
//file upload and submit button
}
控制器中的文件上载摘录:
[HttpPost]
public ActionResult Populate(HttpPostedFileBase file)
{
if (file != null && file.ContentLength > 0)
try
{
string path = Path.Combine(Server.MapPath("~/Content"), System.IO.Path.GetFileName(file.FileName));
file.SaveAs(path);
return RedirectToAction("Create", new { file = Path.GetFileName(file.FileName) });
}
catch (Exception ex)
{
...omitted error logging code...
return RedirectToAction("Create");
}
else
{
...omitted error logging code...
return RedirectToAction("Create");
}
}
RedirectToAction(“Create”,new{file=Path.GetFileName(file.FileName)})代码>重新加载视图并使用上载的文件填充表单。我试图通过输入url来使用预上载的文件执行此操作:。/ScProject/Create?file=upload.pptx
,该url在IIS Express上运行良好,但在开发服务器上失败。如果有人能提供任何见解,我们将不胜感激。以下是检查表:
是否在发生故障的服务器上使用Windows身份验证
您是否在服务帐户或ApplicationPoolIdentity下运行应用程序拉取
您的目标文件夹安全性是否允许对该帐户进行读/权限访问
如果代码在IIS Express中运行时正在保存文件,而不是在IIS中运行,则其主要问题是应用程序池标识没有访问您试图保存文件的目录的权限。当您说失败时,是否看到任何错误或只是没有在服务器上保存文件?