2008-11-28 35 views
0

我已经继承了使用多个SOAP端口从第三方Web服务请求数据的BizTalk 2006应用程序。 Web服务通过“基本”身份验证 - 用户名/密码进行保护。在对应用程序进行了一些增强后,我部署到了可访问第三方Web服务的集成测试服务器。 BizTalk应用程序无法检索数据,我很快意识到我忘记了在SOAP发送端口上设置用户名/密码。我希望尽可能使自动化的BizTalk应用程序部署为自动化,因为在将它部署到实时服务器时可能不存在。我打开了绑定文件,找到问题SOAP发送端口的第一个,并寻找BizTalk用来替换密码的*,但它不是!看来,对SOAP端口的密码设置为NULL,而不是*,在这里看到更多的细节: http://msdn.microsoft.com/en-us/library/aa547319.aspx绑定文件中的BizTalk SOAP端口密码

我继续更新绑定,但是当我来到测试,导入我的修改绑定文件后,我发现我有和以前一样的问题。我已经加倍检查并可以确认绑定文件中现在存在正确的密码,但是,尽管BizTalk在导入期间没有发生抱怨,但在运行应用程序时,我收到以下异常:

详细信息: ArgumentNullException:未将字符串引用设置为字符串的实例。 参数名称:s “。

如果我然后通过BizTalk管理控制台手动修改密码一切工作正常。

有没有其他人有与SOAP端口绑定类似的问题 - 有没有人有解决方案?

回答

3

过去我一直都这样。密码要么以'****'的形式输入。还行吧。我不希望我的所有秘密都与绑定文件一起输出。当你导出绑定并将密码保留为NULL时,你得到的是什么。 XML元素上密码的变量类型(vt)属性被设置为vt =“1”,它与NULL相同。密码输入的内容无关紧要。它甚至可能会导致你所描述的错误。我建议你包含绑定XML的副本以供审阅。

+0

非常好,谢谢克里斯。我改变属性为vt =“8”(显然8 = BSTR),它的工作:) – 2008-12-01 21:43:31

0

我从来没有见过这个问题 - 我正在做你正在做的事情,它完美的作品。

我已经包含了<TransportTypeData>元素来自我的一个BizTalk绑定。希望有东西可以与帮助进行比较。

<TransportTypeData> 
&lt;CustomProps&gt; 
&lt;AuthenticationScheme vt="8"&gt;Basic&lt;/AuthenticationScheme&gt; 
&lt;AssemblyName vt="8"&gt;WebService.ProxyClass, Version=1.0.0.0, 
Culture=neutral, PublicKeyToken=xyz&lt;/AssemblyName&gt; 
&lt;Username vt="8"&gt;soapUser&lt;/Username&gt; 
&lt;UseProxy vt="11"&gt;0&lt;/UseProxy&gt; 
&lt;UseSoap12 vt="11"&gt;0&lt;/UseSoap12&gt;&lt;UsingOrchestration vt="11"&gt;0&lt;/UsingOrchestration&gt; 
&lt;UseSSO vt="11"&gt;0&lt;/UseSSO&gt; 
&lt;Password vt="8"&gt;MYPASSWORD&lt;/Password&gt; 
&lt;ProxyPort vt="3"&gt;80&lt;/ProxyPort&gt;&lt;AssemblyPath 
vt="8"&gt;C:\ProxyClass\bin\Debug\ProxyClass.dll&lt;/AssemblyPath&gt; 
&lt;TypeName vt="8"&gt;ProxyClass.Webservice.servicesService&lt;/TypeName&gt; 
&lt;MethodName vt="8"&gt;PickupRequest&lt;/MethodName&gt; 
&lt;UseHandlerSetting vt="11"&gt;-1&lt;/UseHandlerSetting&gt; 
&lt;/CustomProps&gt; 
</TransportTypeData> 
+0

感谢您的帮助帮助David。事实上 - 你的绑定是微妙的不同,你有vt =“8”属性。所以很容易错过 - 当然要记住未来。 – 2008-12-01 21:42:12