首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Protocols.SoapException :找不到文件,我将路径

Protocols.SoapException :找不到文件,我将路径
EN

Stack Overflow用户
提问于 2019-12-18 15:33:39
回答 1查看 30关注 0票数 0

我怎么能做这样的事呢。我得到了这个错误

我正在尝试做一些像文档路径这样的事情,但它不是很正确。我的代码如下所示:

代码语言:javascript
复制
public bool PrintOnMicrosoftWord(string ID, string docPath)
{
    string constring = "Data Source=DLX;Initial Catalog=K2;User ID=K2_User; Password=K2_User;";
    using (SqlConnection con = new SqlConnection(constring))
    {
        con.Open();
        string sqlQuery = "select * from [K2].[dbo].[E-MemoFinalPDF] where id = @id";
        using (SqlCommand cmd = new SqlCommand(sqlQuery, con))
        {
            cmd.Parameters.AddWithValue("@id", ID);
            using (SqlDataReader rd = cmd.ExecuteReader())
            {
                try
                {
                    if (rd.Read())
                    {
                        string to_Field = rd["To_Field"].ToString();
                        string from_field = rd["From_Field"].ToString();
                        string copy_field = rd["copy_field"].ToString();
                        string date_field = rd["date_field"].ToString();
                        string subject_field = rd["Subject"].ToString();
                        string manname1 = rd["ManName1"].ToString();
                        string manname2 = rd["ManName2"].ToString();
                        string manname3 = rd["ManName3"].ToString();
                        string manname4 = rd["ManName4"].ToString();
                        string manname5 = rd["ManName5"].ToString();
                        string manname10 = rd["ManName10"].ToString();
                        string ManDesg1 = rd["ManDesg1"].ToString();
                        string ManDesg2 = rd["ManDesg2"].ToString();
                        string ManDesg3 = rd["ManDesg3"].ToString();
                        string ManDesg4 = rd["ManDesg4"].ToString();
                        string ManDesg5 = rd["ManDesg5"].ToString();
                        string ManDesg10 = rd["ManDesg10"].ToString();
                        string approval1 = rd["Approval1"].ToString();
                        string approval2 = rd["Approval2"].ToString();
                        string approval3 = rd["Approval3"].ToString();
                        string approval4 = rd["Approval4"].ToString();
                        string approval5 = rd["Approval5"].ToString();
                        string approval10 = rd["Approval10"].ToString();

                        //print information on Docx Document

                        using (WordprocessingDocument doc = WordprocessingDocument.Open(docPath, true))
                        {
                            MainDocumentPart mainPart = doc.MainDocumentPart;

                            SdtElement to_block = mainPart.Document.Body.Descendants<SdtElement>().Where(r => r.SdtProperties.GetFirstChild<Tag>().Val == "To").Single();
                            SdtElement from_block = mainPart.Document.Body.Descendants<SdtElement>().Where(r => r.SdtProperties.GetFirstChild<Tag>().Val == "From").Single();
                            SdtElement copy_block = mainPart.Document.Body.Descendants<SdtElement>().Where(r => r.SdtProperties.GetFirstChild<Tag>().Val == "Copy").Single();
                            SdtElement date_block = mainPart.Document.Body.Descendants<SdtElement>().Where(r => r.SdtProperties.GetFirstChild<Tag>().Val == "Date").Single();
                            SdtElement subject_block = mainPart.Document.Body.Descendants<SdtElement>().Where(r => r.SdtProperties.GetFirstChild<Tag>().Val == "Subject").Single();

                            SdtElement manname1_block = mainPart.Document.Body.Descendants<SdtElement>().Where(r => r.SdtProperties.GetFirstChild<Tag>().Val == "ManName1").Single();
                            SdtElement manname2_block = mainPart.Document.Body.Descendants<SdtElement>().Where(r => r.SdtProperties.GetFirstChild<Tag>().Val == "ManName2").Single();
                            SdtElement manname3_block = mainPart.Document.Body.Descendants<SdtElement>().Where(r => r.SdtProperties.GetFirstChild<Tag>().Val == "ManName3").Single();
                            SdtElement manname4_block = mainPart.Document.Body.Descendants<SdtElement>().Where(r => r.SdtProperties.GetFirstChild<Tag>().Val == "ManName4").Single();
                            SdtElement manname5_block = mainPart.Document.Body.Descendants<SdtElement>().Where(r => r.SdtProperties.GetFirstChild<Tag>().Val == "ManName5").Single();
                            SdtElement manname10_block = mainPart.Document.Body.Descendants<SdtElement>().Where(r => r.SdtProperties.GetFirstChild<Tag>().Val == "ManName10").Single();

                            SdtElement mandesg1_block = mainPart.Document.Body.Descendants<SdtElement>().Where(r => r.SdtProperties.GetFirstChild<Tag>().Val == "ManDesg1").Single();
                            SdtElement mandesg2_block = mainPart.Document.Body.Descendants<SdtElement>().Where(r => r.SdtProperties.GetFirstChild<Tag>().Val == "ManDesg2").Single();
                            SdtElement mandesg3_block = mainPart.Document.Body.Descendants<SdtElement>().Where(r => r.SdtProperties.GetFirstChild<Tag>().Val == "ManDesg3").Single();
                            SdtElement mandesg4_block = mainPart.Document.Body.Descendants<SdtElement>().Where(r => r.SdtProperties.GetFirstChild<Tag>().Val == "ManDesg4").Single();
                            SdtElement mandesg5_block = mainPart.Document.Body.Descendants<SdtElement>().Where(r => r.SdtProperties.GetFirstChild<Tag>().Val == "ManDesg5").Single();
                            SdtElement mandesg10_block = mainPart.Document.Body.Descendants<SdtElement>().Where(r => r.SdtProperties.GetFirstChild<Tag>().Val == "ManName10").Single();

                            SdtElement approval1_block = mainPart.Document.Body.Descendants<SdtElement>().Where(r => r.SdtProperties.GetFirstChild<Tag>().Val == "Approval1").Single();
                            SdtElement approval2_block = mainPart.Document.Body.Descendants<SdtElement>().Where(r => r.SdtProperties.GetFirstChild<Tag>().Val == "Approval2").Single();
                            SdtElement approval3_block = mainPart.Document.Body.Descendants<SdtElement>().Where(r => r.SdtProperties.GetFirstChild<Tag>().Val == "Approval3").Single();
                            SdtElement approval4_block = mainPart.Document.Body.Descendants<SdtElement>().Where(r => r.SdtProperties.GetFirstChild<Tag>().Val == "Approval4").Single();
                            SdtElement approval5_block = mainPart.Document.Body.Descendants<SdtElement>().Where(r => r.SdtProperties.GetFirstChild<Tag>().Val == "Approval5").Single();
                            SdtElement approval10_block = mainPart.Document.Body.Descendants<SdtElement>().Where(r => r.SdtProperties.GetFirstChild<Tag>().Val == "Approval10").Single();


                            Text to = to_block.Descendants<Text>().Single();
                            Text from = from_block.Descendants<Text>().Single();
                            Text copy = copy_block.Descendants<Text>().Single();
                            Text date = date_block.Descendants<Text>().Single();
                            Text subject = subject_block.Descendants<Text>().Single();

                            Text manager1 = manname1_block.Descendants<Text>().Single();
                            Text manager2 = manname2_block.Descendants<Text>().Single();
                            Text manager3 = manname3_block.Descendants<Text>().Single();
                            Text manager4 = manname4_block.Descendants<Text>().Single();
                            Text manager5 = manname5_block.Descendants<Text>().Single();
                            Text manager10 = manname10_block.Descendants<Text>().Single();

                            Text mandesg1 = mandesg1_block.Descendants<Text>().Single();
                            Text mandesg2 = mandesg2_block.Descendants<Text>().Single();
                            Text mandesg3 = mandesg3_block.Descendants<Text>().Single();
                            Text mandesg4 = mandesg4_block.Descendants<Text>().Single();
                            Text mandesg5 = mandesg5_block.Descendants<Text>().Single();
                            Text mandesg10 = mandesg10_block.Descendants<Text>().Single();

                            Text appr1 = approval1_block.Descendants<Text>().Single();
                            Text appr2 = approval2_block.Descendants<Text>().Single();
                            Text appr3 = approval3_block.Descendants<Text>().Single();
                            Text appr4 = approval4_block.Descendants<Text>().Single();
                            Text appr5 = approval5_block.Descendants<Text>().Single();
                            Text appr10 = approval10_block.Descendants<Text>().Single();


                            to.Text = to_Field;
                            from.Text = from_field;
                            copy.Text = to_Field;
                            date.Text = date_field;
                            subject.Text = subject_field;

                            manager1.Text = manname1;
                            manager2.Text = manname2;
                            manager3.Text = manname3;
                            manager4.Text = manname4;
                            manager5.Text = manname5;

                            mandesg1.Text = ManDesg1;
                            mandesg2.Text = ManDesg2;
                            mandesg3.Text = ManDesg3;
                            mandesg4.Text = ManDesg4;
                            mandesg5.Text = ManDesg5;

                            appr1.Text = approval1;
                            appr2.Text = approval2;
                            appr3.Text = approval3;
                            appr4.Text = approval4;
                            appr5.Text = approval5;

                            mainPart.Document.Save();
                        }
                    }
                }
                catch(Exception ex)
                {
                    throw ex;
                }
            }
        }

    }
    return true;
}

找不到文档。我想知道为什么?我是不是好像错过了什么?这在我的visual studio中的iisexpress上工作得很好,但如果我想将它指向要引用或直接使用的路径,它会告诉我找不到文档。

EN

回答 1

Stack Overflow用户

发布于 2019-12-22 00:50:42

您正在向WordprocessingDocument.Open(string, bool)方法传递不正确的路径,该方法将抛出FileNotFoundException,因为至少在运行时环境中没有包含该路径的文档。因此,您需要了解如何指定驻留在CSS服务器上的不同类型内容的路径(例如,应用程序使用的内容;公共的静态资源,如CSS、JavaScript和图像文件)。

例如,在ASP.NET核心中,您可以使用IWebHostEnvironment接口的ContentRootPathWebRootPath属性来查找相关的根路径。

因此,假设您的文档位于内容根目录下的某个文件夹中。假设_envIWebHostEnvironment的一个实例,下面的代码示例演示如何指定要传递给WordprocessingDocument.Open(string, bool)方法的绝对路径。

代码语言:javascript
复制
string relativeDocPath = "path/relative/to/content/root/document.docx";
string absoluteDocPath = Path.Combine(_env.ContentRootPath, relativeDocPath);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59387361

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档