在VS 2015中调试xslt时,我收到以下错误消息
“xsl转换失败请参阅输出窗口以获取详细信息WebException无法连接到远程服务器SocketException无法建立连接,因为目标计算机主动拒绝它127.0.0.1:1234”
如果我在xml文档中开始使用光标进行调试(而不是xsl),它有时会起作用,但并非总是如此。
答案 0 :(得分:3)
在我的网页项目中,我通过点击“调试 - >开始而不调试”来修复此问题。然后,我可以正常方式进行visual studio xsl调试。
我不确定为什么这样可以解决这个问题。但我认为xsl调试器是从localhost获取xml架构的,并且由于127.0.0.1:1234没有启动它将无法获取它。
但是它试图从localhost获取什么?我在猜测,但当我将光标放在xsl文档中并单击xml->模式时,我从本地项目中看到了一个xsd。不知怎的,VS可能认为它参与了变形,但它不是。
我也使用了xsl中的文档功能。但是我可以在浏览器中请求这些文档,所以我不认为他们可能会导致拒绝请求。
另一种可能性是文档功能从生产域请求非开发(非本地主机)xml文档。正如我所说,该文件是可以获取的,但也许有一个原产地限制域?
答案 1 :(得分:0)
尽管问题已经得到回答,但我仍在发布此信息,以便对答案不起作用的其他人可以有其他选择。
一切都很好,所有文件都存在于我的Web应用程序中,当我单击“无需调试即可启动XSLT”时,VS仍然给了我“ WebException”。我尝试了这里给出的答案,但是没有用。
然后,我在其他Visual Studio实例中打开我的XML文件(只是XML文件;不是项目或解决方案所在的),然后单击相同的“不调试即可启动XSLT”。而这一工作。
似乎当您尝试在Web应用程序项目下转换文件时,Visual Studio尝试做一些额外的事情。但是,如果您不必通过在VS中加载Web应用程序项目来运行XSLT,则此答案可能会对您有所帮助。
答案 2 :(得分:0)
虽然上面的答案对我有用,但并不总是有效。此问题的根本原因是Visual Studio处于Web解决方案模式而不是文件夹模式。前者几乎没有权限,并且安全限制阻止您的XSLT通过document函数获取xml。在文件夹模式下,您的xslt将能够执行任何操作,完全权限,没有限制并且没有XslCompiledTransform LoadCompiledQuery.Query.staticData异常。