网站未下载由网站C#/ASP.创建的PDF.NET MVC



我在Hostgator上部署了一个网站。这是我的第一个网站,所以我对这一切还是有点陌生。使用Visual Studio 2019,这在开发中非常有效,但一旦部署在我的网站上,就会出现错误:

/是否创建费率确认?loadNumber=RT222398 500(内部服务器错误(VM1795 jquery:1

我正在使用itext v.7创建pdf,我想这可能与创建pdf时的路径有关?实际的pdf函数有1800多行代码,所以我不打算发布所有这些,但这是相关的(我认为(信息:

string fileName = loads[i].Carrier.carrierName + " " + loadNumber + " Rate Confirmation.pdf";
string desktopFolder = "C:";
System.IO.Directory.CreateDirectory(desktopFolder + "\Rate Confirmations");
string downloadFolder = desktopFolder + "\Rate Confirmations";
PdfWriter writer = new PdfWriter(downloadFolder + "\" + fileName);
PdfDocument pdf = new PdfDocument(writer);
Document document = new Document(pdf);

大约有十亿行pdf创建。。。

document.Close();
System.Diagnostics.Process.Start(downloadFolder + "\" + fileName);
string timeStamp = getTimeStamp(name);
loads[i].notes = loads[i].notes + timeStamp + ": Rate Confirmation Created^";
db.Entry(loads[i]).CurrentValues.SetValues(loads[i]);
db.SaveChanges();
break;

值得一提的是,该函数中有一个时间戳,应该也会显示在我网站上的注释中,但事实并非如此,所以它显然并没有完全通过该函数。

我确信这是一个完全简单的解决方案,但我对这一切都很陌生,我似乎找不到解决方案。

提前感谢!!!

我不太确定是什么导致了这个问题。但肯定有一件事可能会导致PDF生成失败。永远不要手动硬编码目录。相反,尝试根据您的网络应用程序部署在上的服务器动态获取它

您可以用替换目录代码

string desktopFolder = Path.GetFullPath(Directory.GetCurrentDirectory());
string downloadFolder = desktopFolder + "\Rate Confirmations";
if (!Directory.Exists(downloadFolder))
Directory.CreateDirectory(downloadFolder);

此代码将自动获取应用程序的当前目录,并将其从虚拟路径更改为绝对路径

最新更新