问题标签 [service-reference]
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.
asp.net - 将“Web 引用”更改为“服务引用”会更改方法签名
我正在帮助一位同事解决这个问题,所以如果我遗漏了一些细节,这就是原因。
我们有一个调用 WCF 服务的 asp.net 3.5 Web 应用程序。最初,该应用程序使用“Web 引用”来注册服务,但是在遇到一些麻烦并与 Microsoft 发生事件后,他们的解决方案是用 WCF 服务的“服务引用”替换“Web 引用”。
这很好,但问题是当我们创建服务引用时,方法签名与使用 Web 引用时不同。
从我所读到的内容来看,这可能是可以预料的,但是在我们的例子中,这意味着对应用程序的一些重大更改,当然它是昨天到期的......所以......
...我想知道两件事:
- 方法签名会根据引用类型而改变是否正常/预期?
- 有没有办法创建将生成与原始 Web 参考相同的方法签名的服务参考?
silverlight - 使用 slsvcutil.exe 参考共享 Silverlight 程序集
我有几个 WCF 服务被不同的 Silverlight 应用程序使用。我目前正在使用具有相当标准设置的slsvcutil.exe来生成我的 Silverlight 代理对象:
我想做的是在多个服务及其生成的 Silverlight 代理之间共享一些类型,特别是 base RequestMessage
,ResponseMessage
和。ApplicationFault
我希望这些类型位于它们自己的公共 Silverlight 命名空间中,以便我可以使用共享的 Silverlight 代码来轮询服务请求或检查 SOAP 错误并将其转换为可以抛出的已知异常类型。
我认为这可以通过使用 slsvcutil.exe 上的/r或/reference开关来完成,方法是使用共享类型指定 DLL 的路径。我尝试像这样构建代理,但它似乎仍然为我试图共享的对象生成新的不兼容类型:
关于可能出现问题的任何想法?还是我对/r开关可用于 slsvcutil.exe 的用途有错误的印象?
asp.net - 模拟/伪造 ASP.NET 服务引用和 QUnit 测试
我刚刚进入 QUnit 测试,并在我的第一页遇到了问题:S
我们使用 ASP.NET 服务引用来利用 html 页面上的异步数据加载,在同一个项目中创建对 Web 服务的引用。ASP.NET 在幕后所做的(ScriptManager 控件)是创建一个表示服务方法并处理所有 AJAX 调用的 JS 文件。
使用它,我有一个在 document.ready jQuery 事件中调用这些方法之一的页面。我现在正在尝试使用 QUnit 对此 js 文件进行测试,但要避免让 js 文件调用实际的 Web 服务并改用模拟服务。到目前为止,这是我的尝试:
main.js(生产代码文件)
main-test.js(测试QUnit代码,本页引用main.js)
此测试失败。LoadData 方法作为原始(main.js)document.ready 事件的一部分被调用,因此它仍然调用生产 Web 服务,并且测试失败,因为从未设置(或在生产中定义)该 GetDataCalled 变量。我做错了 asyncTest 吗?(这是我使用 QUnit 的第一天,所以我很可能是)
我可以看到这个工作的另一种方式是如果我可以覆盖 main.js document.ready 事件,但我不太确定如何做到这一点。我也不想在我的生产 main.js 代码中添加“testEnvironment == true”检查。
.net - 来自 wsdl 的 silverlight 服务参考 - 缺少方法
通过指向本地 wsdl 文件,我成功地为 silverlight 应用程序创建了服务引用。预览窗格显示了此 wsdl 中可用的 6 种方法。
但是,生成的代理似乎不知道这些方法,所以我找不到调用它们的方法。
打了这么久,到底是怎么回事?如果需要,我可以在此处发布更多详细信息,谢谢。
.net - System.Net.WebException:请求被中止:请求被取消
我有一个 WCF 服务在负载条件下一直给我这个错误(否则我似乎无法重新创建错误)。我们一直在尝试找到解决它大约一周的方法,但没有这样的运气......
我看到的错误有两个部分,
System.ServiceModel.CommunicationException: An error: (The request was aborted: the request was cancelled.) 在通过 http 通道传输数据时发生。
和:
System.Net.WebException:请求被中止:请求被取消。
我看到很多人建议通过重载Reference.cs
文件中的方法和设置来禁用保持活动KeepAlive = false
,但是,我们的客户端正在使用服务引用(除了 Web 引用),并且此选项不再存在。
我见过的另一个选择是向服务添加自定义绑定,而不是BasicHttpBinding
我们现在使用的,但这会妨碍那些一直使用 webReference 的人对 web 服务的向后支持(因为CustomBinding
没有启用 SOAP)。
有没有人处理过这个错误?有没有办法在不影响服务器端的情况下禁用 WCF 中的保持活动?是否还有其他已知会导致此错误的保持活动?
c# - 将 ICollection 属性与 WCF 服务一起使用
我有一个类,ExpenseInfo
其中包括一个ICollection<String>
属性:
我有一个返回类型对象的 WCF 服务ExpenseInfo
。我在同一个解决方案的 Silverlight 项目中添加了对该服务的引用。这生成了一堆代码,包括Silverlight 项目中Reference.csExpenseInfo
中的一个类。
这个类看起来不错(虽然,如果我想添加 RIA 验证数据注释,我该怎么做?),但它缺少WhoOwes
属性。是否有某些原因无法通过电线发送?我是否需要以另一种方式表示该数据?还是我搞砸了一些设置?
wcf - 无法从 Windows 7 访问 wcf 服务,但我可以从 XP 或 Vista
我有一个在 Server 2008 标准上运行的 WCF 服务,在从 XP 客户端或 Vista 调用时可以正常工作。我可以从 XP 系统编译程序(使用 VS2010、WPF),它可以在 Vista 或 XP 上正常运行。如果我尝试在 Windows 7 上运行,那就没有运气了。我还在Windows 7系统上安装了VS2010并尝试更新项目中的服务引用,我得到了同样的错误。“网址为http://192.168.0.242/AuthorizationService.svc的文档未被识别为已知文档类型... - 请求失败,HTTP 状态为 404...
在创建和使用服务引用时,Windows 7 与 XP 或 Vista 有什么不同吗?
wcf - 何时添加服务参考?
我正在构建一个 WCF 服务,该服务将部署到运行 IIS 的服务器上。我可以从当前解决方案中添加服务引用并正常使用。
如果我将服务部署到该特定机器,我是否需要将服务重新添加到使用它的应用程序中?
c# - 服务引用错误:无法为服务引用生成代码
我有一个 Windows 服务解决方案,并试图在 VS2010 中添加对 Hermes(开源 ebms 消息服务器)Web 服务的服务引用。
我可以使用它的 URL 找到 Web 服务,但是当我尝试填充服务参考时,我在 Visual Studio 中收到以下错误:
一些调查似乎表明这是由于 svcutil.exe 由于没有目录(可能是 c:\windows\temp)的权限而无法构建代理。我已经尝试分配各种访问权限,但我不确定哪个用户需要该权限,或者它是否只是一个红鲱鱼。
任何想法将不胜感激。
谢谢
wcf - WCF 服务引用停止为一个项目生成代码
我在一个项目中引用了两个不同的 WCF 服务。我更新了其中一项服务的参考,现在没有为它生成任何代码。references.cs 文件顶部只有“这是生成的代码”注释。在其他项目中更新相同的服务并更新其他服务都可以正常工作。只是这个项目中的一个服务引用导致了问题,我没有从 Visual Studio 获得任何信息(它只是说它无法生成代码,我应该查看其他错误,这些错误没有提供任何信息)。
如果我取消选中“引用程序集中的重用类型”,则会生成代码,但我不想让这个项目与其他项目不同。我想解决问题。重新检查重用类型选项会再次生成一个空的 references.cs 文件。集合类型似乎也不重要。
我该如何诊断和解决这个问题?
更新:
看来我弄错了。更新服务引用似乎也破坏了其他项目的生成。我也确实注意到了这些警告:
自定义工具警告:无法导入 wsdl:portType 详细信息:运行 WSDL 导入扩展时引发异常:System.ServiceModel.Description.DataContractSerializerMessageContractImporter 错误:命名空间“http://schemas.datacontract”中具有数据协定名称“异常”的 ISerializable 类型.org/2004/07/System' 无法导入。无法为 ISerializable 类型自定义数据协定命名空间,并且生成的命名空间“TheDefaultNamespaceOfTheProject.ServiceReferenceName”与所需的 CLR 命名空间“System”不匹配。检查所需的命名空间是否已映射到不同的数据协定命名空间,并考虑使用命名空间集合显式映射它。
显然我在那里更改了命名空间,但它似乎试图将 System.Exception 映射到 ThatNamespace.Exception?为什么会这样做,我该如何纠正?我认为这是整个事情的关键。