问题标签 [web-services]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
3328 浏览

asp.net - Global.asax 中的共享/静态变量按请求隔离?

我有一些 ASP.NET Web 服务,它们都共享一个公共帮助器类,它们只需要实例化每个服务器的一个实例。它用于简单的数据转换,但在启动期间会花费一些时间从 web.config 文件等加载内容。帮助类是 100% 线程安全的。将其视为一个简单的实用程序调用库。我会在类上共享所有方法,但我想从 web.config 加载初始配置。我们已将 Web 服务部署到 IIS 6.0 并使用应用程序池,其中包含 15 个工作人员的 Web Garden。

我在 Global.asax 中将帮助类声明为 Private Shared 变量,并添加了一个惰性加载 Shared ReadOnly 属性,如下所示:

我在构造函数中记录了代码MyHelperClass(),它显示了为每个请求运行的构造函数,即使在同一个线程上也是如此。我确定我只是缺少 ASP.NET 的一些关键细节,但 MSDN 并没有太大帮助。

我已经尝试使用两者来做类似的事情Application("Helper")Cache("Helper")并且我仍然看到构造函数随每个请求一起运行。

0 投票
1 回答
3322 浏览

asp.net - ASP.NET WebService 在抛出异常时返回乱码

我有一个 Web 服务 (ASMX),其中有一个 Web 方法,它可以完成一些工作并在输入无效时抛出异常。

回到网页上的客户端 JavaScript,在错误回调函数上,我显示我的错误:

这很好用,当我的 Web 方法返回(一个字符串)时,它总是看起来很完美。但是,如果我抛出的异常中的一条错误消息包含特殊字符,则它在浏览器中显示不正确。例如,如果错误消息包含以下内容:

该输入无效! (那里有一个 ASCII #146)

它显示这个:

该输入无效!

或者:

你喜欢 Hüsker Dü 吗?(ASCII #252)

变成:

你喜欢 Hüsker Dü 吗?

错误消息的内容来自采用 UTF-8 编码的 XML 文件:

就页面编码而言,在我的 Web.config 中,我有:

我还有一个 HTTP 模块来设置 L10n 参数:

我试过禁用这个 HTTP 模块,但结果是一样的。

Web 服务返回的值(在 l_errMsg 变量中)在 VS 调试器中看起来很好。只是一旦客户端脚本持有,它就会显示不正确。我已经使用 Firebug 来查看响应,并且其中也有特殊字符被破坏。所以我觉得很奇怪,我的 web 方法返回的字符串看起来很好,即使其中有特殊字符。然而,当我从 web 方法中抛出异常时,其消息中的特殊字符是不正确的。我怎样才能解决这个问题?

0 投票
3 回答
24618 浏览

c# - 编写 C# 客户端以使用返回对象数组的 Java Web 服务

我正在编写一个 C# 客户端,它调用一个用 Java 编写的 Web 服务(由另一个人)。我已经为我的客户端添加了一个 Web 引用,并且我可以调用 Web 服务中的方法。

该服务已更改为返回一个对象数组,并且客户端未正确解析返回的 SOAP 消息。

当我生成的 C# 代理调用 Web 服务(使用 SoapHttpClientProtocol.Invoke)时,我期待一个长度为 1 的 MyResponse[] 数组,即单个元素。Invoke 调用后我得到的是一个 id=0 和 reason=null 的元素,无论服务实际返回什么。使用数据包嗅探器,我可以看到该服务正在返回看似合法的肥皂消息,其 id 和原因设置为非空值。

让 C# 客户端调用返回 someobject[] 的 Java Web 服务有什么技巧吗?如有必要,我将努力获得经过消毒的演示。

编辑:这是通过“添加网络参考...”的网络参考。VS 2005,.NET 3.0。

0 投票
2 回答
12760 浏览

.net - .NET WCF 错误生成不正确的 SOAP 1.1 错误代码值

我正在尝试使用 FaultException 和 FaultException<T> 来确定我们应用程序中的最佳使用模式。我们需要支持 WCF 以及非 WCF 服务消费者/客户端,包括 SOAP 1.1 和 SOAP 1.2 客户端。

仅供参考:使用带有 wsHttpBinding 的 FaultExceptions 会产生 SOAP 1.2 语义,而使用带有 basicHttpBinding 的 FaultExceptions 会产生 SOAP 1.1 语义。

我正在使用以下代码抛出 FaultException<FaultDetails>:

FaultDetails 类只是一个简单的测试类,它包含一个字符串“Message”属性,如下所示。

使用 wsHttpBinding 时,响应为:

根据 SOAP 1.2 规范,这看起来是正确的。主/根“代码”是“发件人”,其“子代码”为“MySubFaultCode”。如果服务使用者/客户端使用 WCF,客户端上的 FaultException 也模仿相同的结构,faultException.Code.Name 为“Sender”,faultException.Code.SubCode.Name 为“MySubFaultCode”。

使用 basicHttpBinding 时,响应为:

这看起来不对。查看 SOAP 1.1 规范,当我使用 FaultCode.CreateSenderFaultCode(new FaultCode("MySubFaultCode")) 时,我希望看到“faultcode”的值为“s:Client.MySubFaultCode”。此外,WCF 客户端的结构不正确。faultException.Code.Name 是“MySubFaultCode”而不是“Sender”,faultException.Code.SubCode 是 null 而不是 faultException.Code.SubCode.Name 是“MySubFaultCode”。此外,faultException.Code.IsSenderFault 为假。

使用 FaultCode.CreateReceiverFaultCode(new FaultCode("MySubFaultCode")) 时的类似问题:

  • 按预期工作于 SOAP 1.2
  • 生成“s:MySubFaultCode”而不是“s:Server.MySubFaultCode”,并且 SOAP 1.1 的 faultException.Code.IsReceiverFault 为 false

这个项目也是2006年别人在http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=669420&SiteID=1上发布的,没有人回答。我很难相信还没有人遇到过这种情况。

这是其他人遇到类似问题:http ://forums.microsoft.com/msdn/ShowPost.aspx?PostID=3883110&SiteID=1&mode=1

Microsoft Connect 错误:https ://connect.microsoft.com/wcf/feedback/ViewFeedback.aspx?FeedbackID=367963

故障应该如何工作的描述:http: //blogs.msdn.com/drnick/archive/2006/12/19/creating-faults-part-3.aspx

我做错了什么还是这真的是 WCF 中的一个错误?

0 投票
2 回答
29130 浏览

web-services - 在 WebService 调用中序列化字符串时出错

今天早上,我遇到了一个问题,即从 Web 服务调用返回一个文本字符串。我得到的错误如下

我进行了搜索,结果如下: 搜索结果

其中大多数与 WCF 相关,但足以为我指明正确的方向。我将发布答案作为回复。

0 投票
12 回答
14833 浏览

c++ - C++ 网络服务框架

我们正在寻找支持 RPC 的 C++ Soap Web 服务框架,最好是开源的。有什么建议吗?

0 投票
2 回答
361 浏览

asp.net - 试图了解 Web 服务的性能

大约一年前,我购买了一个 ASP.NET 脚本来检索 FedEx 的运费值。它构建一个使用 HttpWebRequest 传递给 FedEx 服务器的 XML 字符串,然后解析原始 XML。脚本的平均响应时间约为 900 毫秒。

所以前几天我在 FedEx 开发人员中心四处闲逛,发现他们提供了一些 C# 代码示例来使用他们的 Web 服务。我使用他们的代码和 WSDL 文件构建了一个小项目,惊讶地发现平均响应时间约为 2.5 秒。

有人可以帮我理解速度的差异吗?有没有办法让它更快?我使用 Web 服务的经验为零。

谢谢。

0 投票
3 回答
3472 浏览

java - Microsoft Reporting Services Web 服务和 Java

是否有人成功实施了使用 Microsoft SQL Server 2005 Reporting Services 的基于 Java 的解决方案?Reporting Services 带有一组 Web 服务,允许您控制报表的创建、报表的执行等,而我刚刚开始开发此集成的 POC。我尚未做出的几个选择是,我是想将 Axis2 用于 wsdl-to-java 功能还是使用 WebLogic 的 clientgen (wsdl 2 java) 解决方案。我想我也可以使用 JAX-WS 和 wsimport。在我深入研究之前,我想看看是否有人使用众多可用选项之一成功地做到了这一点。

过去,我遇到了一些关于如何在 .NET 和 Java Web 服务之间处理 null/blank/empty 的问题,我只是想看看这是否是 SSRS 和 Java 集成的问题。谢谢

0 投票
1 回答
705 浏览

visual-studio - 如何阻止 Visual Studio 生成的 Web 服务代理类进行编码?

我正在使用 Visual Studio 生成的代理类来访问 Web 服务(将 Web 服务添加为我的项目的 Web 引用)。问题是 Web 服务公开的函数需要一个 CDATA 元素,即:

不幸的是,当我将 "" 传入代理类时,它使用以下命令调用 Web 服务:

这似乎会导致 Web 服务出现问题。有什么办法可以在仍然使用 Visual Studio 生成的代理类的同时解决这个问题?

0 投票
5 回答
2075 浏览

asp.net - Visual Studio basicHttpBinding 和端点问题

我在 VS 2008 中有一个 WPF 应用程序,其中包含一些 Web 服务引用。由于各种原因(最大消息大小、身份验证方法),我需要在 WPF 客户端的 app.config 中为服务绑定手动定义一些设置。

不幸的是,这意味着当我更新项目中的服务引用时,我们最终会变得一团糟——多个绑定和端点。Visual Studio 使用数字后缀(即“Service1”作为“Service”的副本)创建新的绑定和端点,导致配置无效,因为项目中的每个服务引用可能只有一个绑定。

这很容易复制 - 只需在解决方案中创建一个简单的“Hello World”ASP.Net Web 服务和 WPF 应用程序,更改 app.config 绑定中的 maxBufferSize 和 maxReceivedMessageSize,然后更新服务引用。

目前我们正在解决这个问题,只需在更新引用后撤消 app.config 上的结帐,但我不禁认为必须有更好的方法!

此外,我们需要手动更改的设置是:

和:

我们使用服务工厂类,因此如果这些设置能够以某种方式以编程方式进行设置,那将起作用,尽管这些属性似乎没有被公开。