无法使用HTMLworker连接到远程服务器

时间:2014-02-18 14:16:09

标签: c# .net itextsharp webrequest

我在C#中使用itextsharp.text元素开发Web应用程序。 我非常喜欢itextsharp及其类。 请帮我解决这个错误: 无法连接到远程服务器

这是我的代码和堆栈跟踪:

public void CreatePDFDocument(string strHtml) 
{
        DirectoryInfo thisFolder = new DirectoryInfo(Server.MapPath("Temp"));
        if (thisFolder.Exists)
        {
            if (File.Exists(Server.MapPath("Temp/test.pdf")))
            {
                File.Delete(Server.MapPath("Temp/test.pdf"));
            }

            thisFolder.Delete();
            thisFolder.Create();
        }
        else
        {
            thisFolder.Create();

        }
        string strFileName =Server.MapPath("Temp/test.pdf");
        // step 1: creation of a document-object
        Document document = new Document();
        // step 2:
        // we create a writer that listens to the document
        PdfWriter.GetInstance(document, new FileStream(strFileName, FileMode.Create));
        StringReader se = new StringReader(strHtml);
        HTMLWorker obj = new HTMLWorker(document);
        document.Open();
        obj.Parse(se); // this line throws error
        document.Close();
        ShowPdf(strFileName);
}

BOLD中的行引发错误。

这是堆栈跟踪:

  

发生了System.Net.WebException

     

的HResult = -2146233079

     

消息=无法连接到远程服务器

     

来源=系统

     

StackTrace:在System.Net.HttpWebRequest.GetResponse()

     

at iTextSharp.text.Image.GetInstance(Uri url,Boolean   handleIncorrectImage)

     

at iTextSharp.text.Image.GetInstance(Uri url)

     

at iTextSharp.text.Image.GetInstance(String filename)

     

在   iTextSharp.text.html.simpleparser.ElementFactory.CreateImage(字符串   src,IDictionary 2 attrs, ChainedProperties chain, IDocListener document, IImageProvider img_provider, Dictionary 2 img_store,String   img_baseurl)at   iTextSharp.text.html.simpleparser.HTMLWorker.CreateImage(IDictionary`2   ATTRS)

     

在   iTextSharp.text.html.simpleparser.HTMLTagProcessors.HTMLTagProcessor_IMG.StartElement(HTMLWorker   worker,String tag,IDictionary`2 attrs)

     

at iTextSharp.text.html.simpleparser.HTMLWorker.StartElement(String   tag,IDictionary`2 attrs)

     

在   iTextSharp.text.xml.simpleparser.SimpleXMLParser.ProcessTag(布尔   启动)

     

at iTextSharp.text.xml.simpleparser.SimpleXMLParser.Go(TextReader)   读取器)

     

在   iTextSharp.text.xml.simpleparser.SimpleXMLParser.Parse(ISimpleXMLDocHandler   doc,ISimpleXMLDocHandlerComment comment,TextReader r,Boolean html)

     

at iTextSharp.text.html.simpleparser.HTMLWorker.Parse(TextReader)   读取器)

     

在F:\ New中的Payroll.PaySlip.CreatePDFDocument(String strHtml)   folder \ EMS \ EMS \ Payroll \ PaySlip.aspx.cs:第88行

     

InnerException:System.Net.Sockets.SocketException

     

的HResult = -2147467259

     

消息=因为目标计算机无法建立连接   积极拒绝它127.0.0.1:5510

     

来源=系统

     

错误码= 10061

     

NativeErrorCode = 10061

     

StackTrace:在System.Net.Sockets.Socket.DoConnect(EndPoint   endPointSnapshot,SocketAddress socketAddress)

     

在System.Net.ServicePoint.ConnectSocketInternal(布尔值   connectFailure,Socket s4,Socket s6,Socket& socket,IPAddress&   地址,ConnectSocketState状态,IAsyncResult asyncResult,   异常和放大器;例外)

     

的InnerException:

1 个答案:

答案 0 :(得分:2)

不确定没有HTML内容,但这适用于您: http://forums.asp.net/t/1841173.aspx

从该页面引用:

  

由于您的html字符串包含指向某些外部的图像   服务器。和iTextSharp库试图从那些图像中获取图像   服务器并没有这样做,这就是你收到这些错误的原因。

     

尝试在同一台计算机上从您的浏览器访问图像。