问题标签 [servicecontract]

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 投票
2 回答
206 浏览

javascript - 从母版页 javascript 调用内容页的 javascript

我正在开发一个可以以两种截然不同的格式显示数据的网络应用程序。为此,我使用了一个母版页,其中包含两个不同的内容页面,用于不同的视图。我正在使用 .svc 文件来执行 AJAX 样式的服务器请求。我希望能够从母版页 javascript 进行服务调用,然后运行适当的 onSuccess javascript 方法(最好位于另一个 .js 文件中)以根据我所在的内容页面显示数据。我是猜测这将通过某种函数委托来完成,但我是 web 开发的新手,不知道如何做到这一点。任何帮助将不胜感激。

0 投票
1 回答
186 浏览

.net - assembly: ContractNamespace() ,此选项在 AssemblyInfo.cs 文件中不可用?

我尝试添加一个程序集级合同命名空间,以便服务和客户端级别的合同都是一个命名空间的一部分。在 AssemlbyInfo.cs 文件中,[assembly: ContractNamespace()] 选项不可用。.Net 框架是 4.0。这可能是什么原因?

0 投票
1 回答
110 浏览

c# - 正在将 OperationContract 中的参数更改为 Nullable等效被认为是一个重大变化?

考虑以下ServiceContract-Interface:

现在我们将其更改为以下内容(有效地将参数更改int a为 a int? a):

使用此 WCF 服务的客户端是否需要进行其他更改才能使用新的服务定义?

0 投票
0 回答
368 浏览

c# - REST API ServiceContract 模拟

序言

本人从事分布式计算机系统,使用C#和.Net Remoting作为进程间通信技术编写,基本部署到客户内网环境。系统负责执行可能涉及多台物理计算机(一台或多台)的预配置任务。该系统是用Interfaces描述的,并且在任务代码中使用它们是透明的,因此它们中的一些是代理对象还是本地对象都没有关系 - 代码库位于单一位置。此外,该接口的实现在代码中的单一位置。这种方法的优点是,当您以某种方式更改接口时- 您可以在代码中反映这种更改。

要点是:

在单一代码库1中拥有服务合同及其实施很重要。

问题

至于现在,我需要以 REST 方式公开我们的服务,并使用它进行进程间通信。根据WCF 和 ASP.NET Web API(以及可能的其他原因),选择使用ASP.NET Web API。使用它,我们需要创建从 ApiController 继承的类。控制器将使用合约(接口),但不会实现它

做出这个决定是因为我不希望合约包含 Http 特定的,比如IHttpActionResult,HttpResponseMessage等。同时我的控制器必须与它使用的合约兼容,因此对代理合约的调用必须正确路由到正确的另一端控制器的操作,它将调用合同的相同方法。这让我编写代码(实际上是单元测试)来验证合约和控制器是否同步。

我曾尝试通过 API 规范使用一些代码生成器,如swaggerraml,但生成的代码是……你知道,它适用于 hello-world 示例,而不适用于复杂的应用程序。即使使用模板驱动——生成优质代码也并不简单。

如果它是 WCF 服务 - 一切都会很棒,因为我们有[ServiceContract],服务器和客户端都是一样的。

例子

这里的示例可以演示 ApiController 和它使用的合约(接口)的同步问题(为简单起见,此处使用 if 语句)

问题

如何确保他们使用的控制器和合同(接口)是同步的?

使用哪种方法来避免这种不确定性?


1单一代码库并不意味着单一项目或单一程序集。

0 投票
1 回答
3025 浏览

c# - 在没有 WCF 服务库项目/程序集参考的情况下从客户端使用 WCF 服务

以下问题可能是重复的,但没有足够的信息来回答我的问题。

是否可以在不添加服务参考的情况下访问 WCF 服务?

我已经按照本指南在 Visual Studio 中使用 WCF 服务库项目设置了 TCP 服务。

https://msdn.microsoft.com/en-us/library/ff649818.aspx

如果您从客户端(Windows 窗体项目)添加对 WCF 服务库项目的引用,这将非常有用。并将 using 语句添加到项目程序集中并使用此代码。

但是,我不想在调用方法“GetData”的项目中添加对 TcpService 程序集的引用。根据上面第一个问题的答案。

所以我尝试使用这段代码。我添加了对 System.ServiceModel 的引用(和 using 指令)来解决大部分错误。但现在它说“找不到类型或命名空间名称'ServiceContract'(您是否缺少 using 指令或程序集引用?)”。我是否需要在我的服务中修改 App.Config,或者在下面调用此代码的项目中添加任何其他代码(关于“ServiceContract”)?

在此处输入图像描述

注意:我将默认Service1.cs和默认接口IService1.cs重命名为Service.cs和IService.cs。没有“1”作为后缀,根据说明。我还在我的代码中将 WcfServiceLibrary1 重命名为 TcpService。此外,在 .NET 4.5 中,我根本不需要这行代码来工作。这个 .Close() 出错了。

我在 Visual Studio 中添加了一个服务引用,方法是右键单击“项目”>“添加”>“服务引用”。但我在那里得到一个错误。

在此处输入图像描述

第二个对话框中的错误:

无法识别 URI 前缀。元数据包含无法解析的引用:“net.tcp://localhost:8523/Service”。无法连接到 net.tcp://localhost:8523/Service。连接尝试持续了 00:00:01.0011001 的时间跨度。TCP错误代码10061:无法建立连接,因为目标机器主动拒绝它127.0.0.1:8523。无法建立连接,因为目标机器主动拒绝它 127.0.0.1:8523 如果在当前解决方案中定义了服务,请尝试构建解决方案并再次添加服务引用。

0 投票
2 回答
1546 浏览

c# - 我可以在 WCF ServiceContract 中公开数据成员吗?

在 WCF 服务中,是否可以在 ServiceContract 定义中包含数据成员?做这样的事情:

我可以MyDataMember从 ServiceContract 内部公开吗?场景将如下所示:以下实现服务合同的类具有我想使用公共字段/属性公开的成员数据。看起来像这样的东西:我试图在实现服务合同的类中公开一个字段/属性。例如:

0 投票
1 回答
288 浏览

c# - 如何在 wcf 中向肥皂体添加参数

我们的客户希望使用以下肥皂消息来调用我的 WCF 服务:

我创建了如下服务合同:

现在,如何启用<st:myExtraParam>param str</st:myExtraParam>函数标签上方的参数?

0 投票
3 回答
1549 浏览

c# - 在 WCF Rest 端点中使用参数“params string[]”

我想定义一个 OperationContract,我可以传递任意数量的字符串参数。这些值应被解释为字符串数组。是否有可能在 OperationContract 中使用这种类型的参数并在 UriTemplate 中定义它?

0 投票
1 回答
46 浏览

c# - 休息服务在网页上返回“方法不允许”

我正在尝试将对象参数作为 JSON 格式传递给 WCF restful 服务。

像这样的服务合同代码;

我的 web.config 文件是这样的;

当我尝试使用“ http://localhost/serviceurl/xml/123 ” url 调用服务时,服务返回“方法不允许”错误消息。

0 投票
1 回答
575 浏览

c# - 带有协议缓冲区的 WCF 服务,配置文件的外观

我以前在 WCF 工作过。但我对协议缓冲区非常陌生。我经历了它的优点以及如何使用它。基本上我想将协议缓冲区插入到我现有的“WCF 库”中。那么我应该在现有的“app.config”文件中进行哪些更改以引入或开始使用协议缓冲区?我现有的服务配置文件如下。

请帮忙!谢谢