Infopath 2007和WCF数据连接

Infopath 2007和WCF数据连接,wcf,soap,infopath,Wcf,Soap,Infopath,尝试将Infopath 2007表单连接到WCF web服务时遇到问题。我发现Infopath似乎只希望通过SOAP 1.0消息进行通信。为了暂时解决这个问题,我创建了一个.asmxweb服务。我是否应该考虑继续解决这个问题,或者想出一个方法来获得WCF来列出SOAP 1 1.1条消息? < P>您可以通过使用BaseChutpB绑定而不是WebCONFIG中的WSHTTPBIN来使用WCF来处理IfopPATH。 < P>只是为了帮助XAXax的答案,这就是我在Web.CONFIG文件中所做的

尝试将Infopath 2007表单连接到WCF web服务时遇到问题。我发现Infopath似乎只希望通过SOAP 1.0消息进行通信。为了暂时解决这个问题,我创建了一个.asmxweb服务。我是否应该考虑继续解决这个问题,或者想出一个方法来获得WCF来列出SOAP 1 1.1条消息?

< P>您可以通过使用BaseChutpB绑定而不是WebCONFIG中的WSHTTPBIN来使用WCF来处理IfopPATH。

< P>只是为了帮助XAXax的答案,这就是我在Web.CONFIG文件中所做的。这是创建新WCF服务时生成的默认配置的一部分。我注释掉了一个端点,并添加了一个新端点,唯一的变化是从wsHttpBinding到basicHttpBinding的绑定,它成功了

    <system.serviceModel>
            <services>
                <service name="Service" behaviorConfiguration="ServiceBehavior">
                    <!-- Service Endpoints -->
                    <!--<endpoint address="" binding="wsHttpBinding" contract="IService">-->
                    <endpoint address="" binding="basicHttpBinding" contract="IService">
                        <identity>
                            <dns value="localhost"/>
                        </identity>
                    </endpoint>
                    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
                </service>
            </services>
...Other Config Here....
    <system.serviceModel>

…其他配置在此。。。。

默认情况下,InfoPath仅适用于basicHttpBinding。将webservice与InfoPath一起使用时,通常会将webservice URL放在UDX文件中。在该文件中,无法为目标服务指定绑定。通常情况下,您自己不会为服务创建代理,InfoPath会在后台为您创建代理,并且该代理仅使用basicHttpBinding

如果希望InfoPath表单与使用非basicHttpBinding的WCF服务配合使用,可以通过在InfoPath表单代码中以编程方式创建代理来实现。以编程方式创建代理时,可以在代理的构造函数中指定目标WCF服务的绑定。使用以编程方式创建的代理时不存在任何限制。当然,.NET3.5应该已经安装好,这样您的代码就可以使用WCF库来创建具有正确绑定的代理。安装InfoPath时,只有.NET 2可用


我用wsHttpBinding尝试过这一点,它毫无问题地工作了。通过阅读许多文章和帖子,许多人似乎认为InfoPath只能与basicHttpBinding一起使用。这只是部分正确,因为它仅适用于您自己不创建代理的情况。

对不起,您是对的。SOAP1.1我将更改问题以反映这一点。同意。我最初尝试让WCF在没有表单代码的情况下使用infopath。最后,我使用了旧的asmx Web服务。让infopath整理其代理只需更少的麻烦,尤其是在界面发生变化时。Web服务方面的麻烦更少,因为它只与infopath一起工作,没有解决办法。我可能会进一步研究这个问题。