Tag: irs

IRS-A2A:WS安全标头无效

我一直在使用服务引用(代理客户端)和手动创建SOAP XML 。 我将WSDL文件作为服务引用导入到我的项目中。 我使用这些引用提供的对象来创建填充我的请求。 我的代码库是使用Visual Studio 2013的C#。 我的服务参考解决方案遇到错误: “消息中的WS安全标头无效。请查看位于https://www.irs.gov/for-Tax-Pros/Software-Developers/的”AIR提交组合和参考指南“第5节中概述的传输说明。 信息 – 退货/负担得起 – 护理 – 行动 – 信息 – 退货 – AIR-计划 ,纠正任何问题,然后再试一次。“ 其他人如何通过Web服务成功将安全性传递给IRS? 有关如何使用代理客户端解决我遇到的问题的任何想法? 代理客户端? 更新 我已经放弃了使用WSDL文件作为服务引用的方法,并且手动创建了传输的SOAP请求。

使用gzip压缩HttpWebRequest

我正在开发一个.NET 4.0控制台应用程序作为SOAP Web Service客户端,它将数据(POST)发送到第三方。 我无法控制服务器端的Web服务。 第三方确实提供了WSDL’s使用,我能够导入它们并合理地使用它们。 但是,需要使用gzip压缩请求消息,并且我无法终身使用代理服务来弄清楚如何使用gzip 。 这个关于SO的主题让我相信,如果不能控制客户端和服务器代码,就无法压缩请求。 作为这一发现的结果,我在我的应用程序中编写了代码,以在XDocument对象中手动创建SOAP XML ; 然后,填充我之前编写的客户端应用程序要使用的WSDL代理类对象中的值。 此客户端的第一个要求是通过gzip发送压缩的消息。 经过一些研究,我看到答案很简单,就像在请求头中添加HttpRequestHeader.AcceptEncoding, “gzip, deflate”一样简单。 不幸的是,这样做似乎不起作用。 目前,我检索的证书不是真正的证书。 在部署到测试环境进行实际的服务测试之前,我试图使代码尽可能健全。 有没有办法通过代理调用( wsdl )压缩请求? 为了正确压缩HttpWebRequest我是否缺少一些东西? 可能会出现其他错误,导致返回错误消息? 如果请求本身没问题,我希望有关身份validation的其他消息无效 。 有没有办法通过app.config进行压缩? 下一组要求我对如何处理/做什么感到困惑。 假设我已经将请求的ContentType设置为,我如何(以及什么)添加content-transfer-encoding片段以添加请求? 如果ContentType不正确,我该如何添加此信息? 具有MTOM编码附件的SOAP Evenlope的内容类型必须是“application / xop + xml”,content-transfer-encoding必须是8位。 我已经完成了下面代码的几次迭代,但是,我相信相关的代码片段是最简单的代码。 如果有其他信息有用,请告诉我。 创建HttpWebRequest的方法: private static HttpWebRequest CreateWebRequest(SoapAction action) { string url = GetUrlAddress(action); HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Headers.Add(HttpRequestHeader.AcceptEncoding, […]

格式错误的参考元素

我试图将引用添加到我的安全标头,并遇到一个相当普遍的错误: 格式错误的参考元素 我尝试了以下类似的结果: 通过将元素的ID作为Reference对象的URI传入来引用文档中的元素。 通过LoadXml()方法将XmlElement对象传递给Reference 。 我正在使用此StackOverflowpost上找到的重载GetIdElement检索XmlElement引用。 当我传入一个空字符串作为URI , ComputeSignature()方法按预期工作。 但是,我需要添加最多3个对安全标头的引用。 更新#1 感谢这篇博文 ,我能够从中创建简化版本,我相信导致我的问题的是使用Namespace属性和前缀。 更新#2 看起来似乎元素的Id属性上的Namespace声明导致发生此错误。 更新#3 我想我有这个工作。 请参阅下面的回答post。 工作样本: 请注意,定义了命名空间的Id XAttribute不起作用; 而没有定义命名空间的Id XAttribute确实有效。 private void CreateSecurityAndTimestampXML(string fileName) { TimestampID = “TS-E” + GUID.NewGuid(); DateTime SecurityTimestampUTC = DateTime.UtcNow; XDocument xdoc = new XDocument( new XElement(wsse + “Security”, new XAttribute(XNamespace.Xmlns + “wsse”, wsse.NamespaceName), new XAttribute(XNamespace.Xmlns + […]

IRS-A2A BulkRequestTransmitter消息未正确格式化和/或无法解释

尝试通过BulkRequestTransmitter Web服务提交时,我收到以下错误。 对于此消息,组合指南不太有用,当我将SOAP XML与Composition Guide中的SOAP进行比较时,它们似乎是一对一的。 我希望另一组眼睛能够看到问题所在。 消息格式不正确和/或无法解释。 请查看位于https://www.irs.gov/for-Tax-Pros/Software-Developers/Information-Returns/Affordable-Care-Act-Information的“AIR提交组合和参考指南”第3节中概述的XML标准。 -Return-AIR-Program ,更正任何问题,然后重试。 我试过的: 尝试在SOAP信封中提交(和不提供)空格。 尝试使用XML格式的表单数据XML进行提交。 尝试使用base64string格式的表单数据提交(因为此提交是)。 在签名元素中添加了ds前缀。 使用此SOpost以便为Signature元素添加前缀。 添加了“漂亮打印”格式的表格数据,并根据更新的作文指南(v4.2)添加。 复制组合指南第10.3节中概述的BulkTransmitterService请求的MIME格式。 创建了两个解决方案:1。)手动创建SOAP请求所需的XML并通过HttpWebRequest对象发送; 2.)通过导入到项目的WSDL作为Service Reference发送提交请求,使用自定义编码器进行GZip and Mtom Encoding并手动创建SOAP状态请求所需的XML(通过HttpWebRequest发送)。 更新#1 根据一些新增内容更新了请求。 在签名元素中添加了ds前缀。 添加了“漂亮打印”格式的表格数据,并根据更新的作文指南(v4.2:第5.4.2节)添加。 更新#2 我开始在Visual Studio的新实例中手动创建SOAP .xml文件,根据需要导入模式引用。 我在任何类型的应用程序创建之外这样做 。 通过这样做,我能够在我通过我的应用程序创建的SOAP找到一些额外的错误(感谢intellisense!) 。 我发现的错误是在Manifest XML中,因为它们不符合IRS模式。 我将在接下来的24小时内查看这些内容并进行相应更新。 urn:MailingAddressGrp应该有一个urn:USAddressGrp或urn:ForeignAddressGrp 。 那个孩子应该包含适当的地址元素。 我的代码目前缺少urn:MailingAddressGrp的直接子代urn:MailingAddressGrp 。 Form1094C_Request_[TCC]_yyyyMMddThhmmssfffZ.xml urn1:DocumentSystemFileNm的值不正确。 我还不完全确定它应该是什么。 urn1:BulkExchangeFile元素存在与xop:Include元素相关的问题。 架构需要base64Binary类型。 更新#2.5 更新了我的XML生成过程以包含USAddressGrp元素。 发现我在毫秒内有一个额外的字符(四个而不是三个)。 一旦我更正了这一点,同时从文件名的开头删除字符串“Form”, urn1:DocumentSystemFileNm的值就能够成功validation模式。 更新#3 […]