在VS事件查看器中,我可以看到对WSB的调用立即抛出两个错误400:
服务器返回错误:(400)请求错误。“)。引发异常:
'System.Net。系统中的“WebException”。dll(“远程服务器返回
错误:(400)请求错误。“)
没有给出理由。同样让我困惑的是,这个错误并没有被我抓住。当我调试并点击调用WSB的代码行时,就像重置一样。我的WSA不会执行更多代码,也不会引发任何错误。
如果我直接调用WSB,它就会工作。所以WSB没有问题。在同事的建议下,我将特定于我的更改的代码放在一个独立的服务中。我字面上是C&P特定于我的代码和配置设置,并调整命名空间和类名。你瞧,它起作用了。我的独立web服务称为WSB,很好地获得了我期望的数据。
所以在这一点上我们有点困惑。我们唯一能想到的可能是web配置中的某些内容可能会干扰,但不知道可能是什么。
很高兴知道为什么它没有落入我的错误处理程序。
谢谢
更新:我被要求添加配置和代码。老实说,我认为这不会有什么帮助,而且这相当简单。由于公司原因,我无法输入真正的代码,但基本上是这样的:
在web配置中:
<configuration>
<appSettings>
<add key="endpointUrl" value = "someurl" />
</appSettings>
.
.
.
<applicationSettings>
<MyService.Properties.Settings>
<setting name="MyService_TheirService"
serializeAs="String">
<value>someurl</value>
</setting>
</MyService.Properties.Settings>
</applicationSettings>
尽管数据非常小,但我确实尝试过制作大型阅读器设置,例如:
<binding name="CustomHtttpBinding" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" closeTimeout="01:50:00" openTimeout="01:50:00" sendTimeout="01:50:00" receiveTimeout="01:50:00" >
<readerQuotas maxDepth="128"
maxStringContentLength="8388608"
maxArrayLength="2147483646"
maxBytesPerRead="4096"
maxNameTableCharCount="16384" />
</binding>
代码:
using MyService.TheirService
.
.
.
var theirURL = ConfigurationManager.AppSettings["endpointUrl"];
var oSvc = new TheirServiceObject
{
Url = theirURL
};
int numberIneed = oSvc.SomeMethod();
更新2:
一位同事教我如何使用小提琴。我现在可以看到,对WSB的请求是绝对垃圾。
x s 6 mr!!u \.3 5'3克QOH>I kX M3~vY)X e Z
w~:jv-wHb Yqv A:(Q Z;gt;9W O0g 6.VlU 8Z
<(t eSv U)r$N\