ari*_*iel 6 asp.net asp.net-mvc process wkhtmltopdf
我正在使用wkhtmltopdf下载页面并创建一个pdf,在这里作为解释.这一切都按预期工作,但当它到达以下行时:
int read = proc.StandardOutput.BaseStream.Read(buffer, 0, buffer.Length);
Run Code Online (Sandbox Code Playgroud)
这需要很长时间才能继续下去.我也尝试过以下方法:
proc.Start();
string output = proc.StandardOutput.ReadToEnd();
string error = proc.StandardError.ReadToEnd();
proc.WaitForExit();
Run Code Online (Sandbox Code Playgroud)
但同样的事情发生在第2行(proc.StandardOutput.ReadToEnd()).
我该怎么调试呢?
注意:当我调试整个项目时,我看到wkhtmltopdf进程调用的页面只在延迟后被调用.因此,OS调用和页面下载本身之间会发生延迟.
编辑
所以我将参数部分更改为简单http://google.com -,并且执行速度非常快.
所以问题出在我的全部论点中: --stop-slow-scripts --redirect-delay 1500 --cookie MOODLEID_ %25E2%25C8%2513E%25BD --cookie ASP.NET_SessionId mg3mfaisk45zn5y1aql0glbb --cookie .ASPXAUTH FEA3D10032E211EDB330E967D8F19A324A912AD792219CA281451AA809F1B580B25466DAF81DE30DF07252FF13F0888C88ED4DB5871579F1DA3EBAA447CBF860131F6FF00A763C9207CE13BCB143301E49A2B00EEBBF1F4AE14F109DF1BE8D3B39C43478B99E4C686C3849D1D51DDBFA3D2E871691BAB8346FE5195D867F88F662F72E40 http://localhost:8404/Relatorio/GeralEstaticoPDF?id=15&pesq_cod=0&IncluirParciais=True&NomesImagens[0]=3fd5b6a2-76a4-470b-af99-93500cc90431.png&NomesImagens[1]=c1c86234-c338-4285-9d25-5069be36a213.png&NomesImagens[2]=4562f9a3-72aa-452c-9736-6d0ba65f59ce.png&NomesImagens[3]=dbc54344-6248-4ee3-9e43-9cb3ef89cc67.png&NomesImagens[4]=8c954917-d572-4d4a-b6fd-2b9cd09e8f8e.png -
我需要cookie来保存会话.
如果我直接在命令行上运行它(但放入文件名而不是-),它也会快速运行.
编辑2
所以问题肯定是cookie,如果我删除它,它执行速度快,但它只给我在pdf上的登录屏幕,因为它不保留会话.
似乎是会话 cookie 导致了问题,表单身份验证 cookie 很好,或者任何其他 cookie 都可以。原因是这样的:
“为了避免会话存储中的数据冲突和意外的会话状态行为,SessionStateModule 和 SessionStateStoreProviderBase 类包含锁定功能,该功能在 ASP.NET 页面执行期间专门锁定特定会话的会话存储项。”
| 归档时间: |
|
| 查看次数: |
1340 次 |
| 最近记录: |