我正在尝试从HTML文件创建PDF文件.环顾四周之后我发现:wkhtmltopdf是完美的.我需要从ASP.NET服务器调用此.exe.我试过了:
Process p = new Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.FileName = HttpContext.Current.Server.MapPath("wkhtmltopdf.exe");
p.StartInfo.Arguments = "TestPDF.htm TestPDF.pdf";
p.Start();
p.WaitForExit();
Run Code Online (Sandbox Code Playgroud)
没有成功在服务器上创建任何文件.任何人都可以给我指向正确的方向吗?我将wkhtmltopdf.exe文件放在站点的顶级目录中.应该举行其他任何地方吗?
编辑:如果有人有更好的解决方案从html动态创建PDF文件,请告诉我.
我一直在广泛研究这个问题,似乎无法找到答案.
我知道Only part of a ReadProcessMemory or WriteProcessMemory request was completed当32位进程尝试访问64位进程时会抛出异常,而对于64位进程修改32位进程则会抛出异常.
该问题的解决方案是将平台目标更改为"任何CPU".我试过这个,不幸的是这并没有解决我的问题.
下一个代码块是不断抛出异常的原因.运行此代码的程序用于在远程计算机上打开应用程序,并保留程序本身打开的所有进程的列表,这样我就不必遍历所有进程.
Process processToRemove = null;
lock (_runningProcesses)
{
foreach (Process p in _runningProcesses)
{
foreach (ProcessModule module in p.Modules)
{
string[] strs = text.Split('\\');
if (module.ModuleName.Equals(strs[strs.Length - 1]))
{
processToRemove = p;
break;
}
}
if (processToRemove != null)
{
break;
}
}
if (processToRemove != null)
{
processToRemove.Kill();
_runningProcesses.Remove(processToRemove);
}
}
Run Code Online (Sandbox Code Playgroud)
这些过程可以并且很可能是32位和64位混合在一起.
我有什么我不应该做的事情,或者是否有更好的方法来做所有这些?
请原谅,如果这是更多的服务器故障与stackoverflow.它似乎在边境.
我们有一个应用程序,它使用ASP.NET缓存为电子商务应用程序缓存大量产品数据.这是一个包含65K元素的字典对象,我们的计算将对象的大小设置为~10GB.
问题:
对象消耗的内存量似乎远远超过我们的10GB计算量.
最大的关注: 我们似乎无法使用服务器中超过60%的32GB.
到目前为止我们尝试过的:
在machine.config/system.web中(sf不允许标记,请原谅格式化):
processModel autoConfig="true" memoryLimit="80"
Run Code Online (Sandbox Code Playgroud)
在web.config/system.web/caching/cache中(sf不允许使用标记,请原谅格式化):
privateBytesLimit = "20000000000" (and 0, the default of course)
percentagePhysicalMemoryUsedLimit = "90"
Run Code Online (Sandbox Code Playgroud)
环境: Windows 2008R2 x64 32GB RAM IIS7
似乎没有什么能让我们超过60%的价值.查看taskman的截图.